Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение полей и поиск по ним CONCAT_WS + LIKE / 9 сообщений из 9, страница 1 из 1
19.05.2015, 14:00:02
    #38962685
xew
xew
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
Имеется таблица users с полями lastname, firstname, middlename
Нужно объединить поля и найти нужного пользователя

Объединение делаю так:
авторSELECT CONCAT_WS(' ', lastname, firstname, middlename) search FROM users

Вопрос: Как реализовать LIKE с этим запросом и возможно ли ?

Пробовал так:
авторSELECT CONCAT_WS(' ', lastname, firstname, middlename) search FROM users WHERE search LIKE '%Попова%'
...
Рейтинг: 0 / 0
19.05.2015, 14:02:20
    #38962689
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
В WHERE нельзя ссылаться на алиасы из секции SELECT.
Код: sql
1.
2.
3.
SELECT CONCAT_WS(' ', lastname, firstname, middlename) search
FROM users
WHERE CONCAT_WS(' ', lastname, firstname, middlename) LIKE '%Попова%'


Правда, непонятно, зачем тут конкатенация, когда можно три лайка сделать.
...
Рейтинг: 0 / 0
19.05.2015, 14:11:26
    #38962704
xew
xew
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
miksoft,

Спасибо, уже зам допер:
авторselect search from (SELECT CONCAT_WS(' ', lastname, firstname, middlename) AS search FROM users) result WHERE search LIKE '%Попова%'


Кому надо :)
...
Рейтинг: 0 / 0
19.05.2015, 14:12:18
    #38962708
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
xewmiksoft,

Спасибо, уже зам допер:
авторselect search from (SELECT CONCAT_WS(' ', lastname, firstname, middlename) AS search FROM users) result WHERE search LIKE '%Попова%'


Кому надо :)Не, так точно не надо.
...
Рейтинг: 0 / 0
19.05.2015, 14:15:55
    #38962710
xew
xew
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
miksoft, пчму ?
...
Рейтинг: 0 / 0
19.05.2015, 14:20:25
    #38962716
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
xewmiksoft, пчму ?Потому что не надо тащить подзапросы там, где они не нужны. А то они ненароком и материализоваться могут.
Да и сложность чтения/поддержки возрастает.

Если уже настолько не хочется повторять выражение (хотя тут оно и вовсе не нужно), то используйте HAVING.
...
Рейтинг: 0 / 0
19.05.2015, 14:23:39
    #38962724
xew
xew
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
miksoft, спасибо)
...
Рейтинг: 0 / 0
19.05.2015, 15:02:11
    #38962786
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
ну лучше так
Код: sql
1.
2.
3.
SELECT  lastname, firstname, middlename
FROM users
WHERE CONCAT_WS(' ', lastname, firstname, middlename) LIKE '%Попова%'
...
Рейтинг: 0 / 0
19.05.2015, 15:17:55
    #38962819
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение полей и поиск по ним CONCAT_WS + LIKE
вадя , ну ничем не лучше, да к тому же не соответствует задаче. Единственное вменяемое улучшение уже указано - использовать поиск по отдельным полям, без конкатенации, чтобы индексы работали.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение полей и поиск по ним CONCAT_WS + LIKE / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]