MySQL中字符串函數(shù)的詳細(xì)說(shuō)明
發(fā)表時(shí)間:2023-08-24 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]今天在論壇中看到一個(gè)關(guān)于mysql的問(wèn)題,問(wèn)題如下good_id cat_id12654 665,56912655 601,4722goods_id是商品idcat_id是分類(lèi)id當(dāng)我,怎么根據(jù)這種分類(lèi)ID查數(shù)據(jù)(一個(gè)商品有多個(gè)分類(lèi),而且用逗號(hào)隔開(kāi)了)我...
今天在論壇中看到一個(gè)關(guān)于mysql的問(wèn)題,問(wèn)題如下
good_id cat_id
12654 665,569
12655 601,4722
goods_id是商品id
cat_id是分類(lèi)id
當(dāng)我,怎么根據(jù)這種分類(lèi)ID查數(shù)據(jù)(一個(gè)商品有多個(gè)分類(lèi),而且用逗號(hào)隔開(kāi)了)
我現(xiàn)在用的是like 這樣的話,輸入一個(gè)分類(lèi)id是688,或者4722都能出來(lái)這個(gè)商品,但輸入一個(gè)722也出來(lái)這個(gè)商品了。
如果用like做的話,肯定會(huì)有問(wèn)題的,我的開(kāi)始的想法是,把cat_id里面的字符串換成數(shù)組,這樣可以利用mysql里面的in操作,這樣就不會(huì)出現(xiàn)查找722,而4722類(lèi)別下的產(chǎn)品都跑出來(lái)了。我從網(wǎng)上找了半天,這方面的字符串操作函數(shù),沒(méi)找到,不過(guò)我發(fā)現(xiàn)了find_in_set這個(gè)函數(shù)雖然不能,將字符串轉(zhuǎn)換成數(shù)組,但是也不會(huì)出現(xiàn)上面的情況。我發(fā)現(xiàn)自己有好多函數(shù)不知道,所以我從手冊(cè)中,以及網(wǎng)上收集了半天,做了一些例子。
CHAR_LENGTH(str) 返回str的字符數(shù)
LENGTH(str) 返回str的字節(jié)長(zhǎng)度
CONCAT(str1,str2....) 返回參數(shù)str1,str2....的拼接,有一個(gè)null值則返回null
CONCAT_WS(x,str1,str2...) ---concat with separator 第一個(gè)參數(shù)x代表分隔符,后面的參數(shù)為字符串
如果x為NULL則返回NULL,如果字符串有NULL會(huì)被忽略
INSERT(s1,x,len,s2) 字符串替換 s1 目標(biāo)字符串 x為s1的開(kāi)始位置(下標(biāo)從1開(kāi)始) len為x之后的長(zhǎng)度 s2為需要替換的字符串
如果x超過(guò)s1的長(zhǎng)度下標(biāo),則返回s1,如果len大于x之后剩余字符串長(zhǎng)度,則全部替換
LOWER(str)、LCASE(str) 字符串轉(zhuǎn)為小寫(xiě)
UPPER(str)、UCASE(str) 字符串轉(zhuǎn)為大寫(xiě)
LEFT(str,n) 返回字符串str最左邊的n個(gè)字符
RIGHT(str,n) 返回字符串str最右邊的n個(gè)字符
LPAD(s1,len,s2) 返回s2從s1的左邊填充直到總長(zhǎng)度為len,如果len<s1的長(zhǎng)度,則s2不填充,返回s1從左開(kāi)始的len長(zhǎng)度字符
RPAD(s1,len,s2) 返回s2從s1的右邊填充直至len的長(zhǎng)度,如果len<s1的長(zhǎng)度,則s2不填充,返回s1從左開(kāi)始的len長(zhǎng)度字符
LTRIM(S) 刪除左側(cè)的空格 RTRIM(s) 刪除右側(cè)的空格 TRIM(s) 刪除兩側(cè)的空格
TRIM(s1 FROM s2) 刪除s2兩端出現(xiàn)的s1字符串
REPEAT(s,n) 返回n個(gè)s組成的字符串,n<=0,返回空;s或者n為NULL,返回NULL
SPACE(n) 返回n個(gè)空格字符串
REPLACE(s,s1,s2) 返回--由s2替換s中的所有s1字符串的結(jié)果
STRCPM(s1,s2) s1==s2 返回0 s1<s2 返回-1 s1>s2 返回1
SUBSTRING(s,n,len) 、MID(s,n,len)返回s從n開(kāi)始的len長(zhǎng)度的字符串 ,若n<0,則從s的最后倒數(shù)n個(gè)開(kāi)始截取,n=0的話返回空字符串;len可以省略-截取n之后的所有字符
LOCATE(str1,str2)、POSITION(str1 IN str2)、INSTR(str2,str1) 返回str1在str2中出現(xiàn)的開(kāi)始位置
REVERSE(s) 返回s的字符串的反轉(zhuǎn)
ELT(n,str1,str2,str3...) 返回str1,str2.. 中的第n個(gè)字符串 ,n超出返回返回null
FIELD(s,str1,str2,str3....) 返回s在str1,str2.....中的第一次出現(xiàn)的位置,沒(méi)有返回0
FIND_IN_SET(s,str1) 返回s在str1中的出現(xiàn)的位置,其中str1由多個(gè)字符串組成,逗號(hào)隔開(kāi)的列表
以上就是MySQL中字符串函數(shù)的詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。