MySQL как другое поле


У меня есть таблица с двумя строковыми столбцами: Url и ModelId. Мне нужно вернуть записи, для которых Url содержит ModelId, что-то вроде этого:

SELECT Id, Url, ModelId WHERE Url like "%ModelId%"
4 21

4 ответа:

SELECT Id, Url, ModelId 
WHERE Url LIKE CONCAT('%', ModelId, '%')

Вы не можете просто объединить строки, вы также должны экранировать поле из % и _:

SELECT Id, Url, ModelId 
WHERE Url LIKE CONCAT('%', REPLACE(REPLACE(ModelId,'%','\%'),'_','\_'), '%'), '%')

Вот запрос:

SELECT Id, Url, ModelId WHERE Url LIKE CONCAT('%', ModelId, '%')
SELECT Id, Url, ModelId from <table> WHERE Url like '%' + ModelId + '%'