LIKE и фильтрация записей с MySQL не меняются - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть SQL, но у меня возникла проблема с предложением WHERE, поскольку фильтрация записей с помощью операторов, кажется, не фильтрует записи, а выбирает записи, когда их не должно быть, мне нужноэтот LIKE / REGEXP для получения записей, а затем сужения их путем включения записей, которые true , в операторы =.

WHERE  rec.street_name REGEXP '[[:<:]]united[[:>:]]'
OR rec.city REGEXP '[[:<:]]united[[:>:]]'
OR rec.state REGEXP '[[:<:]]united[[:>:]]'
OR rec.country REGEXP '[[:<:]]united[[:>:]]'
OR rec.street_name LIKE 'united'
OR rec.city LIKE 'united'
OR rec.state LIKE 'united'
OR rec.country LIKE 'united'  
AND rec.ad_type = 1  
AND ( rec.num_rooms >= 15 AND rec.num_rooms IS NOT NULL )  
AND rec.visible_listing = 1

Также это предложение WHERE не отфильтровывает записи:

WHERE  rec.street_name REGEXP '[[:<:]]united[[:>:]]'
OR rec.city REGEXP '[[:<:]]united[[:>:]]'
OR rec.state REGEXP '[[:<:]]united[[:>:]]'
OR rec.country REGEXP '[[:<:]]united[[:>:]]'
OR rec.street_name LIKE 'united'
OR rec.city LIKE 'united'
OR rec.state LIKE 'united'
OR rec.country LIKE 'united' 
AND ( rec.ad_type = 1  AND ( rec.num_rooms >= 15 AND rec.num_rooms IS NOT NULL)  AND rec.visible_listing = 1 ) 

Даже изменение rec.num_rooms / rec.ad_type на любое число все равно ничего не меняет.Почему это?

1 Ответ

2 голосов
/ 14 сентября 2011

Добавить паренсов вокруг ИЛИ

WHERE  (rec.street_name REGEXP '[[:<:]]united[[:>:]]'
OR rec.city REGEXP '[[:<:]]united[[:>:]]'
OR rec.state REGEXP '[[:<:]]united[[:>:]]'
OR rec.country REGEXP '[[:<:]]united[[:>:]]'
OR rec.street_name LIKE 'united'
OR rec.city LIKE 'united'
OR rec.state LIKE 'united'
OR rec.country LIKE 'united' )

AND rec.ad_type = 1  
AND rec.num_rooms >= 15 
AND rec.num_rooms IS NOT NULL 
AND rec.visible_listing = 1
...