Есть ли функция для поиска результата со специальным символом в SQL как? - PullRequest
2 голосов
/ 17 июня 2019

Я пытаюсь получить данные из SQL, используя LIKE успешно, чтобы получить данные, но результат больше, чем мне нужно

Вот мои некоторые данные

apple1
apple2
apple3
applejuice1
applej1
applej2

Мой запрос:

select * from apple where name like '%applej%'

В настоящее время я получил:

applejuice1
applej1
applej2

Мой ожидаемый результат:

applej1
applej2

Ответы [ 4 ]

4 голосов
/ 17 июня 2019

Вы можете попробовать это,

SELECT * FROM apple where name LIKE '%applej_'

'_' используется для представления одного символа в SQL-сервере.Для MS Access вы можете попробовать это

SELECT * FROM apple where name LIKE '*applej?'
3 голосов
/ 17 июня 2019

Используя REGEXP это возможно:

select * 
from apple 
where `name` REGEXP '^applej[0-9]'

Демонстрация на дб <> скрипка .


Обновление:

Если name имеет данные как applej1, applej2, applej15, applej109, будет работать следующий запрос:

select * 
from apple 
where `name` REGEXP '^applej[0-9]+'

Демонстрация на дб <> скрипка

2 голосов
/ 17 июня 2019

Вы можете использовать регулярное выражение, оно будет включать все строки, содержащие 'applej' + 0 или еще 1 символ

SELECT * FROM test WHERE  col1 REGEXP '^applej.?$'

Эта строка найдет все строки, содержащие 'applej' + ровно еще 1 символ

SELECT * FROM test WHERE  col1 REGEXP '^applej.{1}$'

И если число после 'applej' может содержать несколько цифр

SELECT * FROM test WHERE  col1 REGEXP '^applej[0-9]+$'

Конечно, может быть, LIKE, предложенный @forpas в комментариях выше, это все, что вам нужно

0 голосов
/ 17 июня 2019

я нашел решение с

SELECT * FROM apple WHERE MATCH(name) AGAINST('applej')
...