2011-09-14 6 views
0

が、私は私のSQLを持って何の変化にしませんが、WHERE句は、私は、レコードをフィルタリングしていないよう事業者を持つレコードをフィルタリングするので、との問題を抱えているものですが、拾っレコードがなければならないときは、このLIKE/REGEXPレコードを取得して、の=ステートメントにレコードを含めることでレコードを絞り込む必要があります。LIKEとMySQLのレコードのフィルタリングは

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 

NOR句は、レコードを除外しない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は、まだ何も変わりません。どうしてこれなの?

答えて

2

論理和の周りに括弧を追加

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 
関連する問題