У меня есть MySQL таблица со столбцом «имя», где имя написано в формате First Last (так что это объединено). Мне нужно искать init (используя% LIKE% вероятно), но мне нужно найти сходство только по первым буквам в каждом слове. Обычно я бы использовал LIKE%, но он будет искать только по имени, а не по фамилии …
Есть какое-то решение, пожалуйста?
Это найдет строки, где имя или фамилия начинается с A
:
WHERE name LIKE 'A%' OR name LIKE '% A%'
Это найдет строки, где имя начинается с A
и фамилия начинается с B
:
WHERE name like 'A% B%'
Если вам нужно часто делать подобные вещи, лучше было бы first_name
а также last_name
поля.
MySQL поддерживает REGEXP, но вы не всегда можете полагаться на шаблоны пробелов, чтобы определить, где заканчивается имя и начинается фамилия. Это, однако, будет работать с 95% или лучше.
Тем не менее, я бы порекомендовал написать скрипт для перестройки таблицы, чтобы разделить имя на последний и первый столбцы.