I saw a question about mysql in the forum today. The question is as follows
good_id cat_id
12654 665,569
12655 601,4722
goods_id is the product id
cat_id is the classification id
How do I check the data based on this classification ID (a product has multiple categories, separated by commas)
I am using like now. In this case, entering a classification id is This product can be found by entering 688 or 4722, but the product can also be found by inputting 722.
If you use like, there will definitely be problems. My initial idea is to replace the string in cat_id with an array, so that the in operation in mysql can be used. In this way, search 722 will not appear, and all products under the 4722 category will appear. I searched for a long time on the Internet, but I couldn't find any string operation function in this area. However, I found that although the find_in_set function cannot convert a string into an array, the above situation will not occur. I found that there were many functions that I didn't know, so I collected them from the manual and the Internet for a long time and made some examples.
CHAR_LENGTH(str) Returns the number of characters in str
##REPEAT(s,n) returns a string composed of n s, n<=0, returns empty; s or n is NULL, returns NULL
SPACE(n) Returns n space strings
REPLACE(s,s1,s2) Returns --replacing s with s2 The result of all s1 strings
##STRCPM(s1,s2) s1==s2 returns 0 s1 SUBSTRING(s,n,len), MID(s,n,len) returns a string of len length starting from n. If n<0, it starts from the last reciprocal of s. Start intercepting n characters. If n=0, an empty string will be returned; len can be omitted - all characters after n will be intercepted LOCATE(str1, str2), POSITION(str1 IN str2), INSTR(str2, str1) Return the starting position of str1 in str2 REVERSE(s) Returns the reverse of the string of s ELT(n,str1,str2, str3...) Returns the nth string in str1, str2.., if n exceeds return null FIELD(s,str1,str2,str3.. ..) Returns the position of the first occurrence of s in str1, str2..., without returning 0 FIND_IN_SET(s,str1) Returns the position of s in The position of occurrence in str1, where str1 consists of multiple strings, a comma-separated list The above is the detailed content of Detailed explanation of string functions in MySQL. For more information, please follow other related articles on the PHP Chinese website!