in 的用法 類似於:
select * from t where (a,c) in ((a1,c2),(a2,c3));
首先:
in的單字段 匹配
select * from where a in (a1,a2,a3);
該語法中a 的 型別如果是 純數字的,即使 01,02這種的字串也是可以執行成功的,並且不需要加單引號.
如果是多字段匹配的時候,那麼,如果只有乙個匹配項,是沒有問題的,也不用加單引號 類似於
select * from t where (a,c) in ((01,01));
但是如果是多個匹配項 則型別必須匹配上,必須得加上單引號,也就是說類似於下面的是查不出結果的
select * from t where (a,c) in ((01,01),(02,02));
必須寫成:
select * from t where (a,c) in (('01','01'),('02','02'));
該語法也支援子查詢匹配 類似於:
select * from t where (a,c) in (select n.a,n.c from n );
找了半天問題…
搞不懂,乙個字段匹配多個的時候不加單引號都沒有問題,多個字段匹配一種情況的時候沒問題,多個字段匹配多個情況的時候就有問題,看來缺點都有的,某種意義上來說眾生是平等的.
thinkphp中的多字段模糊匹配
user m user 例項化user物件 map name title thinkphp 把查詢條件傳入查詢方法 user where map select 用到專案中 if address 這裡就很簡單的解決了這個需求,而且很精準。生成的sql語句如下 select a.b.name,b.tel...
兩個表之間多字段的匹配!
乙個專案中涉及到問題 歷史工資資料中的員工資訊與最新的員工資訊之間存在差異,需要對歷史資料到進行匹配後,才能進行匯入 建立測試環境 declare a table id int,name varchar 10 declare b table id int,name varchar 10 insert...
多欄位模糊匹配關鍵字查詢
我們開發資料庫應用時,常常需要用到模糊查詢。如果同乙個條件需要匹配很多字段怎麼辦呢?通常,程式設計師會每個欄位都在sql中 field like cond 一次。這樣,sql語句會長得驚人,碰上覆雜一點的,甚至sql語句會因為超長而被資料庫拒絕執行。其實,這個問題只要動動腦筋就很容易解決 首先,將要...