Mysql: найдите строки, где значение столбца заканчивается определенной подстрокой
У меня есть столбец url, где все значения являются URL-адресами. Я пытаюсь обновить значение другого столбца, где когда-либо вышеупомянутый URL-адрес заканчивается на .pdf.
Может ли кто-нибудь помочь мне с этим? Я не нашел здесь ответа на SO.
Ответ 1
Я мог бы упростить... но на основе вашего описания LIKE решить вашу проблему?
UPDATE YourTable
SET DifferentColumn = 'NewValue'
WHERE Url LIKE '%.pdf'
Ответ 2
Вы можете использовать условие LIKE с личным шаблоном. %.pdf означает, что столбец должен заканчиваться на .pdf
UPDATE mytable
SET newcolumn = 'PDF found'
WHERE yourcolumn LIKE '%.pdf'
В качестве альтернативы вы можете использовать функцию right()
UPDATE mytable
SET newcolumn = 'PDF found'
WHERE right(yourcolumn,4) = '.pdf'
Ответ 3
В предложении WHERE используйте что-то вроде LOCATE('.pdf',url) > 0, чтобы идентифицировать интересующую запись.
Как указано, это даст вам любой URL-адрес, содержащий ".pdf" в строке...
Если вы определенно хотите, чтобы ".pdf" был в конце, вы также можете попробовать:
LOWER(RIGHT(url,4)) = '.pdf'
Я бы использовал LOWER или UPPER для решения любых проблем.
Вы также можете использовать LIKE %.pdf (опять же, обратите внимание на проблемы с верхним/нижним регистром), как было предложено
другими.