mysql中FIND_IN_SET方法學(xué)習(xí)

在mysql中,有時(shí)我們?cè)谧鰯?shù)據(jù)庫(kù)查詢時(shí),需要得到某字段中包含某個(gè)值的記錄,但是它也不是用like能解決的,使用like可能查到我們不想要的記錄,它比like更精準(zhǔn),這時(shí)候mysql的FIND_IN_SET函數(shù)就派上用場(chǎng)了,下面來具體了解一下

官方對(duì)此函數(shù)的說明

  • FIND_IN_SET(str,strlist)
    Returns a value in the range of 1 to N if the string str is in the string list strlist consisting of N substrings. A string list is a string composed of substrings separated by , characters. If the first argument is a constant string and the second is a column of type SET, the FIND_IN_SET() function is optimized to use bit arithmetic. Returns 0 if str is not in strlist or if strlist is the empty string. Returns NULL if either argument is NULL. This function does not work properly if the first argument contains a comma (,) character.

大致翻譯如下:

如果字符串str在由N個(gè)子字符串組成的字符串列表strlist中,則返回1到N范圍內(nèi)的值。 字符串列表是由字符組成的字符串,字符串之間用","分隔。 如果第一個(gè)參數(shù)是常量字符串,第二個(gè)參數(shù)是SET類型的列,則FIND_IN_SET()函數(shù)優(yōu)化為使用位運(yùn)算。 如果str不在strlist中或如果strlist是空字符串,則返回0。 如果任一參數(shù)為NULL,則返回NULL。 如果第一個(gè)參數(shù)包含逗號(hào)(,)字符,此函數(shù)無法正常工作。

例如:

mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2

示例:

CREATE TABLE `textbook` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(500) NOT NULL,
  `path_ids` VARCHAR(500) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
insert into `textbook` (`id`, `name`, `path_ids`) values('1','6. 靜夜思','1,2,3');
insert into `textbook` (`id`, `name`, `path_ids`) values('2','7. 小小的船','2,3,5');
insert into `textbook` (`id`, `name`, `path_ids`) values('4','10. 比尾巴','3,9,5');
SELECT * FROM textbook WHERE FIND_IN_SET('3', path_ids);

使用in、find_in_set按順序查出來

SELECT * FROM textbook WHERE id IN(3,1,4,2) ORDER BY FIND_IN_SET(id,'3,1,4,2');

mysql所有方法和操作符

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容