iT邦幫忙

0

SQL語法-多條件查詢

  • 分享至 

  • xImage

請問各位SQL語法前輩

我想輸入某人的姓名、手機的部份資料,就能找出這個人
欄位有1.姓名、2.電話、3.手機、4.住址、5.備註
其中1.姓名及3.手機是必填
2.電話、4.住址、5.備註可以是null

我的語法是這樣
SELECT * FROM customer WHERE name LIKE %$name% AND cell LIKE %$cell% AND tel LIKE %$tel% AND add LIKE %$add% AND memo LIKE %$memo%

最後結果是有null的欄位,全都不會出來
是我語法有問題,還是在null欄位中要填上什麼東西呢?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
13
fanjenfu
iT邦研究生 1 級 ‧ 2010-11-19 08:05:03
最佳解答

你可以試試
SELECT * FROM customer WHERE name LIKE %$name% AND cell LIKE %$cell% AND isnull(tel,'') LIKE %$tel% AND isnull(add,'') LIKE %$add% AND isnull(memo,'') LIKE %$memo%
這是 SQL Server 的用法!

v121020 iT邦新手 5 級 ‧ 2010-11-19 09:32:21 檢舉

感謝您的回答
我有試過您提供的方法,結果不行呢
我用的是php + MYSql
還是謝謝您

fanjenfu iT邦研究生 1 級 ‧ 2010-11-19 09:48:33 檢舉

MySQL就要試試把isnull改成ifnull

9
lordrd
iT邦新手 2 級 ‧ 2010-11-19 10:37:23

既然用 Php 要不要試試看
檢查哪個欄位有值
再把條件值 設進去 SQL command
不用把所有欄位全設了 ~

17
fillano
iT邦超人 1 級 ‧ 2010-11-19 11:45:03

部份資料喔,基本上這樣你的條件的邏輯就錯了,不能都用AND啦,只有必填用AND,其他用OR。

15
jeffreyhu
iT邦新手 4 級 ‧ 2010-11-19 21:08:13

最白話的方式:

SELECT * FROM customer WHERE (name LIKE %$name% OR name is null) AND ( (cell LIKE %$cell% OR cell is null) AND (tel LIKE %$tel% OR tel is null) AND (add LIKE %$add% OR add is null) AND (memo LIKE %$memo% OR memo is null)

我要發表回答

立即登入回答