Имя: Пароль:
IT
Админ
SQL. Like. Нужна помощь)
,
0 DirecTwiX
 
05.03.13
00:24
Столбец А - ИМЯ, Б - ФАМИЛИЯ. Параметр "Петя Иванов". Нужно выбрать все строки, которые подходят.
Хочется как-то так:
SELECT A, B FROM table WHERE %A% LIKE param AND %B% LIKE param
1 DirecTwiX
 
05.03.13
00:29
Сейчас попробовал так:
SELECT DISTINCT C FROM table WHERE CONCAT(A, '%', B) LIKE 'Петя Иванов' LIMIT 100
Не получилось
2 DirecTwiX
 
05.03.13
00:43
Что-то рабочее...
$pat = str_replace(' ', '%', $pat);
SELECT DISTINCT C FROM table WHERE CONCAT(A, B) LIKE $pat LIMIT 100
Но хочется поиск получше
3 КонецЦикла
 
05.03.13
01:24
Подходят одновременно двум? А так что плохо?

SELECT A, B FROM table WHERE A LIKE '%Имя%' AND B LIKE '%Фамилия%'
4 DirecTwiX
 
05.03.13
13:10
Имя и  фамилия могут  состоять из нескольких слов.  Но  уже думаю разбивать строку на слова и  делать кучу условий динамически,  что не очень хорошо
5 le_
 
05.03.13
13:18
(2) В like можно не только % использовать.
6 le_
 
05.03.13
13:18
7 Тролль главный
 
05.03.13
13:19
(3) подходит Иван Петянов
8 DirecTwiX
 
05.03.13
13:20
(5) Я  знаю. Мне больше ничего не проходит.
9 badboychik
 
05.03.13
13:20
а что, в скуле нет поиска по регулярным выражениям? В оракле вот есть
10 КонецЦикла
 
05.03.13
13:20
(4) Какая разница
Ты же будешь искать какую-то определенную подстроку?
"петр" - выскочит и петров-водкин и петрикин
11 badboychik
 
05.03.13
13:22
+(9) я же так и думал что есть регулярки. Учись студент http://msdn.microsoft.com/en-us/library/ms174214.aspx
12 774816
 
05.03.13
13:30
SELECT DISTINCT C FROM table WHERE (A  LIKE '%param%'
AND B  LIKE ‘%param%’) LIMIT 100
SELECT DISTINCT C FROM table WHERE (A  LIKE '%param%'
OR B  LIKE ‘%param%’) LIMIT 100
13 DirecTwiX
 
05.03.13
13:46
(10)(12)  Пример:
Имя:  Вася  Дима
Фамилия: Петров
Строка поиска: Дима Петров

За регулярки  спасибо,  почему то  про них не подумал
14 КонецЦикла
 
05.03.13
13:51
вспоминается анек про "Василий'); DROP TABLE Students;--" :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший