phpmysql怎么同时搜索一个字段下的多个值

例如,$str="a,b,c";$arrs=expode(","$str);for($i=1;$i

Mysql数据库一个字段内多个值如何统计个数

创建表person(namevarchar(20));INSERTINTOVALUESperson('a,b,c');INSERTINVALUESperson('a,b');INSERTINpersonVALUES('a,c');DELIMITER//DROPFUNCTIONGetTextCount///************--获取字符串的不同部分。
************/创建函数GetTextCount(pSourceTextVARCHAR(255),pDivCharCHAR(1))RETURNSTINYINTBEGIN—预期结果。
DECLAREvResultTINYINT;--当前小数点的位置DECLAREvIndexINT;--上一个小数点的位置DECLAREvPrevIndexINT;--结果的初始值.SETvResult=1;--查询第一个小数点的位置。
SETvIndex=INSTR(pSourceText,pDivChar);IFvIndex=0THEN--参数中没有逗号,直接返回。
RETURNvResult;ENDIF;--初始化情况下,前面的逗号不存在。
SETvPrevIndex=0;--循环处理。
WHILEvIndex>0C--结果递增。
SETvResult=vResult+1;--上一个小数点位置=当前小数点位置SETvPrevIndex=vIndex;--查询下一个逗号位置SETvIndex=LOCATE(pDivChar,pSourceText,vPrevIndex+1);ENDWHILE;--返回结果。
RETURNvResult;END;//删除函数GetTextValue///************--获取字符串特定部分的数据.************/CREATEFUNCTIONGetTextValue(pSourceTextVARCHAR(255),pDivCharCHAR(1),pIndexTINYINT)RETURNSVARCHAR(255)BEGIN-预期结果DECLAREvResultVARCHAR(255);IFpIndex=1THENSELECTSUBSTRING_INDEX(pSourceText,pDivChar,1)INTOvResult;ELSESELECTREPLACE(SUBSTRING_INDEX(pSourceText,pDivChar,pIndex),CONCAT(SUBSTRING_INDEX(pSourceText,pDivChar,pIndex-1),pDivChar),'')INTOvResult;ENDIF;--返回。
RETURNvResult;END;//DELIMITER;SELECTGetTextValue(t.name,',',MaxNum.No)AS`Name`,COUNT(*)AS`Number`FROMpersont,(SELECT1NoUNIONALLSELECT2NoUNIONALLSELECT3NoUNIONALLSELECT4否UNIONALLSELECT5否)MaxNumWHEREGetTextCount(t.name,',')>=MaxNum.NoGROUPBYGetTextValue(t.name,',',最大数量.No);+--------+|.姓名|+------+|。
到|||。
c|。
2|+------+------+3行(0.01秒)