我在我的表中有4列。現在,由於這更多的是數據清理任務,所以我對性能並沒有特別的關注。但我仍然想知道可能的選擇。SQL like clause with many values
看看下面的查詢:
SELECT * FROM dsopi_person_addr_rule ADDR WHERE
addr.src_address_line1 LIKE '%DEP%'
OR addr.src_address_line2 LIKE '%DEP%'
OR addr.src_address_line3 LIKE '%DEP%'
OR addr.src_address_line4 LIKE '%DEP%';
類似DEP我有10多場比賽。我需要爲所有4條地址線重複每場比賽。有沒有更好的方法來做到這一點?我個人討厭一次又一次地寫作。
**更新:下面就是答案
SELECT *
FROM dsopi_person_addr_rule ADDR
WHERE regexp_like (UPPER(addr.src_address_line1), 'DEP|DPT$|ABT|DIP.|DIPART|AFDEL|AVDEL|AVD.|DIV|PGRD|PGP|PPG')
你看全文搜索? [MySQL全文搜索](http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html) – SidewaysGravity
沒有辦法同時使用'IN'和'LIKE',並且有充分的理由:在你開始「需要」這兩個操作符的時候,你已經達到了應該考慮其他選項的地步(比如全文搜索,就像@SidewaysGravity建議的那樣)。在查詢中有太多的LIKE操作會很慢。 – ean5533
我知道你是對的。我一直在看regexp_like從句。你怎麼看待這件事? – Bytekoder