mariadb vs mysql * как оба обрабатывают SELECT * ОТ клиентов, ГДЕ город нравится '[acs]%'; - PullRequest
0 голосов
/ 04 мая 2019

Когда я запускаю на MySql следующее:

SELECT * FROM Customers WHERE City LIKE '[acs]%';

Я получаю ожидаемые результаты.

Однако тот же запрос в mariadb возвращает пустой набор. Я что-то не так делаю?

Я посмотрел на документы, и кажется, что они хотят, чтобы это было больше похоже на

SELECT * FROM Customers WHERE City RLIKE '(a|c|s)'. 

Есть ли команда, которая будет работать на обоих? Должен ли я использовать REGEXP?

SELECT * FROM Customers WHERE City REGEXP 'a|c|s'

Ответы [ 2 ]

0 голосов
/ 04 мая 2019

Весьма маловероятно, что этот запрос вернет результаты в MySQL:

SELECT *
FROM Customers
WHERE City LIKE '[acs]%';

Почему?Ни одно из названий городов, о которых я знаю, не имеет символа '['.И, если они это сделают, кажется, что еще менее вероятно, что они будут иметь символ ']'.

. Возможно, вы путаете MySQL с SQL Server.Последний расширил шаблоны LIKE для включения классов персонажейЭквивалентная логика в MySQL:

WHERE City REGEXP '^[acs]'

Или, если вы предпочитаете:

WHERE LEFT(City, 1) IN ('a', 'c', 's')
0 голосов
/ 04 мая 2019

Вы можете REGEXP функция:

SELECT * FROM Customers WHERE City REGEXP '[acs]'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...