明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

MySQL中字符串函數(shù)的詳細(xì)說(shuō)明

[摘要]今天在論壇中看到一個(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ù)

MySQL中字符串函數(shù)的詳解

LENGTH(str) 返回str的字節(jié)長(zhǎng)度

MySQL中字符串函數(shù)的詳解

CONCAT(str1,str2....) 返回參數(shù)str1,str2....的拼接,有一個(gè)null值則返回null

MySQL中字符串函數(shù)的詳解

CONCAT_WS(x,str1,str2...) ---concat with separator 第一個(gè)參數(shù)x代表分隔符,后面的參數(shù)為字符串

如果x為NULL則返回NULL,如果字符串有NULL會(huì)被忽略

MySQL中字符串函數(shù)的詳解

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)度,則全部替換

MySQL中字符串函數(shù)的詳解

LOWER(str)、LCASE(str) 字符串轉(zhuǎn)為小寫(xiě)

MySQL中字符串函數(shù)的詳解

UPPER(str)、UCASE(str) 字符串轉(zhuǎn)為大寫(xiě)

MySQL中字符串函數(shù)的詳解

LEFT(str,n) 返回字符串str最左邊的n個(gè)字符

MySQL中字符串函數(shù)的詳解

RIGHT(str,n) 返回字符串str最右邊的n個(gè)字符

MySQL中字符串函數(shù)的詳解

LPAD(s1,len,s2) 返回s2從s1的左邊填充直到總長(zhǎng)度為len,如果len<s1的長(zhǎng)度,則s2不填充,返回s1從左開(kāi)始的len長(zhǎng)度字符

MySQL中字符串函數(shù)的詳解

RPAD(s1,len,s2) 返回s2從s1的右邊填充直至len的長(zhǎng)度,如果len<s1的長(zhǎng)度,則s2不填充,返回s1從左開(kāi)始的len長(zhǎng)度字符

MySQL中字符串函數(shù)的詳解

LTRIM(S) 刪除左側(cè)的空格 RTRIM(s) 刪除右側(cè)的空格 TRIM(s) 刪除兩側(cè)的空格

MySQL中字符串函數(shù)的詳解

TRIM(s1 FROM s2) 刪除s2兩端出現(xiàn)的s1字符串

MySQL中字符串函數(shù)的詳解

REPEAT(s,n) 返回n個(gè)s組成的字符串,n<=0,返回空;s或者n為NULL,返回NULL

MySQL中字符串函數(shù)的詳解

SPACE(n) 返回n個(gè)空格字符串

MySQL中字符串函數(shù)的詳解

REPLACE(s,s1,s2) 返回--由s2替換s中的所有s1字符串的結(jié)果

MySQL中字符串函數(shù)的詳解

STRCPM(s1,s2) s1==s2 返回0 s1<s2 返回-1 s1>s2 返回1

MySQL中字符串函數(shù)的詳解

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之后的所有字符

MySQL中字符串函數(shù)的詳解

MySQL中字符串函數(shù)的詳解

LOCATE(str1,str2)、POSITION(str1 IN str2)、INSTR(str2,str1) 返回str1在str2中出現(xiàn)的開(kāi)始位置

MySQL中字符串函數(shù)的詳解

REVERSE(s) 返回s的字符串的反轉(zhuǎn)

MySQL中字符串函數(shù)的詳解

ELT(n,str1,str2,str3...) 返回str1,str2.. 中的第n個(gè)字符串 ,n超出返回返回null

MySQL中字符串函數(shù)的詳解

FIELD(s,str1,str2,str3....) 返回s在str1,str2.....中的第一次出現(xiàn)的位置,沒(méi)有返回0

MySQL中字符串函數(shù)的詳解

FIND_IN_SET(s,str1) 返回s在str1中的出現(xiàn)的位置,其中str1由多個(gè)字符串組成,逗號(hào)隔開(kāi)的列表

MySQL中字符串函數(shù)的詳解

以上就是MySQL中字符串函數(shù)的詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。