表a有欄位 a
表b有欄位 b
所有欄位資料都是字母
現在我要在表a中找出欄位a滿足:在b中以a開頭并且以a結尾的所有記錄
我這樣寫的,記錄查找的不全,有遺漏,不知道怎么回事
SELECT a.* FROM a,b WHERE a.a LIKE CONCAT(b.b,"%") AND a.a LIKE CONCAT("%",b.b)
換了種寫法還是一樣的效果,也是有遺漏,沒辦法了
SELECT a.* FROM a JOIN b ON a.a LIKE CONCAT("",b.b,"%") AND a.a LIKE CONCAT("%",b.b,"")
求各位高手解答了,謝謝
uj5u.com熱心網友回復:
不應該是用b.b 去like a 好理解么SELECT * FROM test_a a,test_b b WHERE b.key LIKE CONCAT(a.key,'%',a.key)
uj5u.com熱心網友回復:
用了你這個還是一樣的效果,比如zhangshan剛好滿足兩邊都是姓名的字就沒查出來,如果是zhangxiaoshan就查出來了
uj5u.com熱心網友回復:
貼子我寫的陳述句有個大問題,兩個b.b是一樣的值,所以只有zhangyizhang這樣的才滿足,只好分兩步查了,先查右邊,再用結果集執行查左邊,但是效率太低了,怎么辦啊uj5u.com熱心網友回復:
邏輯變了啊你這樣 任意a開頭任意a結尾
SELECT a.*,b.* FROM test_a a,test_b b,test_a c WHERE b.key LIKE CONCAT(c.key,'%',a.key) 這樣 至于優化 得看你寫的sql 和環境了
uj5u.com熱心網友回復:
select a.id from a where a.id in (select b.id from b where b.id like 'a%a')
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/13395.html
標籤:MySQL
下一篇:求給空值添加資料
