91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決mysql in條件語句只讀取一條信息的問題

發布時間:2021-07-28 11:38:03 來源:億速云 閱讀:136 作者:小新 欄目:MySQL數據庫

這篇文章主要為大家展示了“如何解決mysql in條件語句只讀取一條信息的問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何解決mysql in條件語句只讀取一條信息的問題”這篇文章吧。

在編寫MYSQL查詢語句時遇到一個很奇怪的問題,使用mysql多表查詢,一個表中的某個字段作為另一表的in查詢條件,只能讀取一條信息,而直接用數字的話可以正常讀取

SQL語句如下:

select a.id,a.title,b.idlist,b.aid from table a,table2 b where a.id in(b.idlist) and b.aid=2

table2表中的idlist字段是varchar類型,保存table表中的多個id信息即1,2,3,4

用上面的語句可以正常查詢但只能查詢到一條信息但是用下面的語句的話卻可以正常讀取

select a.id,a.title,b.idlist,b.aid from table a,table2 b where a.id in(1,2,3,4) and b.aid=2

很奇怪的問題,開始以為是數據類型的問題,但要保存成1,2,3,4這種格式的數據只能用字符類型,想了很多辦法都沒有解決問題,直到查到MYSQL中的FIND_IN_SET()函數,下面是關于FIND_IN_SET()函數的基本介紹說明

語法:FIND_IN_SET(str,strlist)

定義:

1. 假如字符串str在由N子鏈組成的字符串列表strlist中,則返回值的范圍在1到N之間。

2. 一個字符串列表就是一個由一些被‘,'符號分開的自鏈組成的字符串。

3. 如果第一個參數是一個常數字符串,而第二個是typeSET列,則FIND_IN_SET()函數被優化,使用比特計算。

4. 如果str不在strlist或strlist為空字符串,則返回值為0。

5. 如任意一個參數為NULL,則返回值為NULL。這個函數在第一個參數包含一個逗號(‘,')時將無法正常運行。

strlist:一個由英文逗號“,”鏈接的字符串,例如:"a,b,c,d",該字符串形式上類似于SET類型的值被逗號給鏈接起來。

示例:SELECT FIND_IN_SET('b','a,b,c,d'); //返回值為2,即第2個值

好了,先試試能不能用,把原SQL語句修改成

select a.id,a.title,b.idlist,b.aid from table a,table2 b where FIND_IN_SET(a.id,b.idlist) and b.aid=2

執行一下修改后的語句,終于可以正常讀取了,分析一下原因,最終還是因為數據類型的問題,我們直接in(b.idlist)時,讀取的b.idlist是字符類型,而in只接受數字,雖說都帶有“,”號但實際上是完全不同的.

以上是“如何解決mysql in條件語句只讀取一條信息的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌吉市| 梅州市| 徐汇区| 和龙市| 霍邱县| 肥城市| 河津市| 廉江市| 军事| 延安市| 衡阳县| 确山县| 错那县| 石屏县| 安阳县| 察雅县| 凤山县| 常熟市| 腾冲县| 田阳县| 屏边| 汉川市| 岗巴县| 衡东县| 海口市| 托里县| 沛县| 南乐县| 麻江县| 亚东县| 阜城县| 襄城县| 博兴县| 喜德县| 云安县| 广饶县| 翁源县| 金华市| 枣强县| 于田县| 诏安县|