主頁(yè) > 知識(shí)庫(kù) > 完美解決mysql in條件語(yǔ)句只讀取一條信息問(wèn)題的2種方案

完美解決mysql in條件語(yǔ)句只讀取一條信息問(wèn)題的2種方案

熱門(mén)標(biāo)簽:西安400電話(huà)在哪里辦理 中科嘉智人工智能電銷(xiāo)機(jī)器人 電銷(xiāo)機(jī)器人好品牌門(mén)薩維l 做地圖標(biāo)注都需要什么工具 凱立德科技館地圖標(biāo)注 銀川電銷(xiāo)外呼系統(tǒng)定制 哈爾濱crm外呼系統(tǒng)價(jià)格 上海智能外呼系統(tǒng)需要多少錢(qián) 甘孜電話(huà)機(jī)器人廠(chǎng)家

今天同事在編寫(xiě)MYSQL查詢(xún)語(yǔ)句時(shí)遇到一個(gè)很奇怪的問(wèn)題,使用mysql多表查詢(xún),一個(gè)表中的某個(gè)字段作為另一表的in查詢(xún)條件,只能讀取一條信息,而直接用數(shù)字的話(huà)可以正常讀取

SQL語(yǔ)句如下:

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類(lèi)型,保存table表中的多個(gè)id信息即1,2,3,4

用上面的語(yǔ)句可以正常查詢(xún)但只能查詢(xún)到一條信息但是用下面的語(yǔ)句的話(huà)卻可以正常讀取

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

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

語(yǔ)法:FIND_IN_SET(str,strlist)

定義:

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

2. 一個(gè)字符串列表就是一個(gè)由一些被‘,'符號(hào)分開(kāi)的自鏈組成的字符串。

3. 如果第一個(gè)參數(shù)是一個(gè)常數(shù)字符串,而第二個(gè)是typeSET列,則FIND_IN_SET()函數(shù)被優(yōu)化,使用比特計(jì)算。

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

5. 如任意一個(gè)參數(shù)為NULL,則返回值為NULL。這個(gè)函數(shù)在第一個(gè)參數(shù)包含一個(gè)逗號(hào)(‘,')時(shí)將無(wú)法正常運(yùn)行。

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

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

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

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

執(zhí)行一下修改后的語(yǔ)句,終于可以正常讀取了,分析一下原因,最終還是因?yàn)閿?shù)據(jù)類(lèi)型的問(wèn)題,我們直接in(b.idlist)時(shí),讀取的b.idlist是字符類(lèi)型,而in只接受數(shù)字,雖說(shuō)都帶有“,”號(hào)但實(shí)際上是完全不同的.

好了問(wèn)題解決了,如果還想知道更多關(guān)于FIND_IN_SET()函數(shù)的使用方法,可以看一下頁(yè)面的相關(guān)文章

您可能感興趣的文章:
  • 分析Mysql表讀寫(xiě)、索引等操作的sql語(yǔ)句效率優(yōu)化問(wèn)題
  • MySQL根據(jù)某一個(gè)或者多個(gè)字段查找重復(fù)數(shù)據(jù)的sql語(yǔ)句
  • PHP獲取MySQL執(zhí)行sql語(yǔ)句的查詢(xún)時(shí)間方法
  • Mysql查詢(xún)最近一條記錄的sql語(yǔ)句(優(yōu)化篇)
  • Mysql 根據(jù)一個(gè)表數(shù)據(jù)更新另一個(gè)表的某些字段(sql語(yǔ)句)
  • MySQL 截取字符串函數(shù)的sql語(yǔ)句
  • 使用SQL語(yǔ)句查詢(xún)MySQL,SQLServer,Oracle所有數(shù)據(jù)庫(kù)名和表名,字段名
  • 提升MYSQL查詢(xún)效率的10個(gè)SQL語(yǔ)句優(yōu)化技巧
  • 一條sql語(yǔ)句完成MySQL去重留一
  • MySQL語(yǔ)句整理及匯總介紹

標(biāo)簽:平頂山 山南 濮陽(yáng) 那曲 四川 浙江 安徽 安康

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《完美解決mysql in條件語(yǔ)句只讀取一條信息問(wèn)題的2種方案》,本文關(guān)鍵詞  完美,解決,mysql,條件,語(yǔ)句,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《完美解決mysql in條件語(yǔ)句只讀取一條信息問(wèn)題的2種方案》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于完美解決mysql in條件語(yǔ)句只讀取一條信息問(wèn)題的2種方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章