Замените звездочку (*) на что-нибудь в SQL

77
2

У меня есть тонна URL в моей базе данных, и я хочу отфильтровать их по определенной пользователем строке в формате something/*/something, где * означает "что-нибудь". Поэтому, когда пользователь определяет checkout/*/complete, это означает, что он отфильтровывает url следующим образом:

http://my_url.com/checkout/15/complete
http://my_url.com/checkout/85/complete
http://my_url.com/checkout/something/complete
http://my_url.com/super/checkout/something/complete

и т.п.

Как мне это сделать в SQL? Или я должен отфильтровать все результаты и использовать PHP, чтобы сделать работу?

Мой SQL-запрос сейчас

SELECT * FROM custom_logs WHERE pn='$webPage' AND id IN ( SELECT MAX(id) FROM custom_logs WHERE action_clicked_text LIKE '%{$text_value_active}%' GROUP BY token ) order by action_timestamp desc

Это отфильтровывает все сообщения журнала с пользовательским текстом в столбце action_clicked_text, но использует оператор LIKE, который не будет работать с * внутри.

спросил(а) 2019-01-13T05:13:00+03:00 1 год, 6 месяцев назад
1
Решение
55

Вы хотите, like. Или:

where url like '%checkout/%/complete%'

чтобы получить URL, которые соответствуют шаблону. Или же:

where url not like '%checkout/%/complete%'

чтобы получить другие URL.

ответил(а) 2019-01-13T05:16:00+03:00 1 год, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема