Column1
имеет запись со значением example
.Выберите строки, которые полностью совпадают с концом строки
Пользователь отправляет значение somethingwithexample
.
Конец строки соответствует значению Column1
. Как выбрать Column1
в MySQL?
Column1
имеет запись со значением example
.Выберите строки, которые полностью совпадают с концом строки
Пользователь отправляет значение somethingwithexample
.
Конец строки соответствует значению Column1
. Как выбрать Column1
в MySQL?
select * from your_table
where $userInput like concat('%', col)
Он работает, но он также выбирает пустые строки и целые числа, а не идею? – Sunny
Можете ли вы привести пример? Я не совсем понимаю. –
Итак, если пользовательский ввод 'stackoverflow', он выбирает все строки со словом' flow', так что это работает. Но он также выбирает строки со значениями '1' и' NULL'. – Sunny
select * from table_name
where column_name like '%example'
select * from tablename where value like '%example';
будут выбраны все строки, в которых значение столбца имеет значения, которые заканчиваются на примере , например: mathexample, scienceexample;
select * from tablename where value like '%example%';
будут выбраны все строки, в которых значение столбца имеет такие значения, как mathexample1, scienceexample2 и т.д.
Вы можете использовать like
оператор:
SELECT *
FROM mytable
WHERE :userinput LIKE CONCAT('%', mycolumn)
EDIT:
Как отмечено в комментарии, если столбец пуст, он будет оцениваться как userinput LIKE '%'
, который по определению всегда true
. Этот краевой кейс должен быть обработан явно:
SELECT *
FROM mytable
WHERE mycolumn IS NOT NULL AND
mycolumn != '' AND
:userinput LIKE CONCAT('%', mycolumn)
это только @ в конце записи –
не доставит вас правильно .. можете ли вы разработать? вам нужно только слово «example» или каждое слово, которое включает «пример» –
, поэтому вы можете создать хранимую процедуру, в которой вы можете принять слово «слово», которое вы хотите сравнить, а затем передать его в «идентификатор». –