если искать функцией REGEXP 'test|word|hello'
то как узнать что Hello World мы получили именно из за hello.
Прошу прощения, если не понятно написал.
Есть таблица
id title
1 Test text
2 Thats is word
3 Hello World
Как составить запрос с регулярным выражением например SELECT * FROM table WHERE title REGEXP 'hello|anything|just' так что-бы потом было ясно что
строка
id title
3 Hello World
выбралась по совпадению со словом hello из pattern('hello|anything|just')
например
id title match
3 Hello World hello
Спустя 2 дня, 15 часов, 17 минут, 8 секунд (10.01.2011 - 19:36) mrmaloy написал(а):
Неужели никто ничего об этом не знает?
Спустя 3 минуты, 40 секунд (10.01.2011 - 19:40) Dron19 написал(а):
Знают тут все что нужно на форму, тут люди сидят грамотные и знающие свое дело, просто нужно немного корректней выражать мысли, я 3 раза прочитал и ничего не понял
Спустя 6 минут, 5 секунд (10.01.2011 - 19:46) Invis1ble написал(а):
Dron19
не знаю... я допустим понял мысль автора, все нормально он выразился.. Просто я например не знаю решения, поэтому ничего не отвечаю =)
mrmaloy
покури мануал мускульный, наверняка там есть ответ.
Если найдешь решение, отпишись, мне тоже интересно )
не знаю... я допустим понял мысль автора, все нормально он выразился.. Просто я например не знаю решения, поэтому ничего не отвечаю =)
mrmaloy
покури мануал мускульный, наверняка там есть ответ.
Если найдешь решение, отпишись, мне тоже интересно )
Спустя 50 секунд (10.01.2011 - 19:47) quickxyan написал(а):
а шо тут неясного - просто есть наример 3 варианта для совпадений и по какому-то из них совпадает что-то в БД. он хочет узнать по какому именно из вариантов было найдено совпадение)
Спустя 4 минуты, 24 секунды (10.01.2011 - 19:51) Dron19 написал(а):
Наверное я дибил

Спустя 13 минут, 33 секунды (10.01.2011 - 20:05) Dron19 написал(а):
$result = mysql_query("SELECT * FROM myFuckinTable") or mysql_error();
$fetch = mysql_fetch_array($result);
$preg = preg_match("/(hello)/i",$fetch['title']);
if($preg)
print "True";
else print mysql_error();
Только при нахождении, то есть когда вернет true в условии, напишешь то, что тебе нужно, да и код напишешь нормально, а то это я так чисто для проверки набрал
Спустя 2 минуты, 42 секунды (10.01.2011 - 20:08) Dron19 написал(а):
у меня вернул true, когда в столбце была надпись Hello World, думаю я правильно тебя понял и написал то, что тебе нужно
Спустя 1 минута, 7 секунд (10.01.2011 - 20:09) Dron19 написал(а):
думаю такой алгоритм тебе подойдет
Спустя 25 минут, 41 секунда (10.01.2011 - 20:34) Invis1ble написал(а):
Dron19
ты так и не понял задачу. Прочти еще раз первый пост, автор его отредактировал =)
ты так и не понял задачу. Прочти еще раз первый пост, автор его отредактировал =)
Спустя 1 минута, 10 секунд (10.01.2011 - 20:36) mrmaloy написал(а):
Dron19
К сожалению нет. Все проверки должны быть в самом запросе т.к. pattern может быть длинной до 300!!! слов а база может быть и в 5 тысяч записей, соответсвенно полная выборка из базы просто убьет сервер.
К сожалению нет. Все проверки должны быть в самом запросе т.к. pattern может быть длинной до 300!!! слов а база может быть и в 5 тысяч записей, соответсвенно полная выборка из базы просто убьет сервер.
Спустя 1 минута, 26 секунд (10.01.2011 - 20:37) Invis1ble написал(а):
mrmaloy
Так и не нашел ничего?
Так и не нашел ничего?
Спустя 1 минута, 25 секунд (10.01.2011 - 20:38) mrmaloy написал(а):
Invis1ble
К сожалению нет =(
К сожалению нет =(
Спустя 22 минуты, 21 секунда (10.01.2011 - 21:01) Dron19 написал(а):
а как ты закинешь работу функции в запрос? У тебя по-любому будет ошибка
Спустя 57 секунд (10.01.2011 - 21:02) mrmaloy написал(а):
Dron19
Какую работу какой функции?
Какую работу какой функции?
Спустя 5 минут, 35 секунд (10.01.2011 - 21:07) Dron19 написал(а):
ну регулярного выражения, ты вообще как совпадения проверяешь, вводишь значение из формы и ищешь его в каком-то поле бд? Если да, то можно сделать все по-другому
Спустя 7 минут, 14 секунд (10.01.2011 - 21:15) mrmaloy написал(а):
формы не использую, просто генерируется регулярка простенькая с вариантами слов по которой потом выбираем из таблицы строки в которых column - пусть будет text совпадает с любым из слов, нужно узнать с каким именно словом совпало
Спустя 4 минуты, 33 секунды (10.01.2011 - 21:19) SlavaFr написал(а):
а на зачем это надо? не проще ли сразу задавать такие запросы, чтоб было сразу понятно что найденно?
например:
собственно не только в mysql, но и просто в регехпрессе для твоей идеи нет не какого прямого решения, кроме как зарание задавать правильные запросы зарание знать что ищеш.
например:
SELECT ....
case
when title like '%hello%' then 'hello'
when title like '%anything%' then 'anything'
when title like '%just%' then 'just'
end as chto
FROM table ...
собственно не только в mysql, но и просто в регехпрессе для твоей идеи нет не какого прямого решения, кроме как зарание задавать правильные запросы зарание знать что ищеш.
Спустя 10 минут, 2 секунды (10.01.2011 - 21:29) mrmaloy написал(а):
На первый взгляд это мне поможет, сейчас углубимся в исследования =)
остается только вопрос:
если вариантов case около 300 не повиснет ли сервер?
Может стоит упомянуть что я ищу функционал круглых скобок preg_match'a в MySql =)
mreg_match('(he)llo', $where, $arr);
$arr = array(
[0]=>hello
[1]=>he << хотелось бы всетаки так же получать совпадение =)
остается только вопрос:
если вариантов case около 300 не повиснет ли сервер?
Может стоит упомянуть что я ищу функционал круглых скобок preg_match'a в MySql =)
mreg_match('(he)llo', $where, $arr);
$arr = array(
[0]=>hello
[1]=>he << хотелось бы всетаки так же получать совпадение =)
Спустя 1 час, 38 минут, 48 секунд (10.01.2011 - 23:08) kirik написал(а):
mrmaloy
используйте sphinx
используйте sphinx
_____________
<td></td>...<td></td>...<td></td>... тихо стучали колеса поезда в ночной тишине.