1. 程式人生 > >Mysql查詢欄位中包含某字串的記錄

Mysql查詢欄位中包含某字串的記錄

1.正確的方式:

判斷欄位field_A中是否包含23:

select * from table_test where FIND_IN_SET("23", field_A) ;

2.錯誤的方式:

select * form table_test where field_A like "%23%"

3.案例分析:

field_A欄位:
[5,123,223]
[230,232,233]
[5,23,1]

若想查詢field_A欄位中含有字串23的記錄,而不包含123231等記錄的話,只能通過Mysql函式FIND_IN_SET("str","field")來查詢,否則會有干擾資料。

通過like "%23%"會查詢到3條記錄。
通過like "23%"會查詢到後兩條記錄。
通過like "%23"第一條和第三條記錄,所以like模糊查詢的並不能滿足需求。

相關推薦

Mysql查詢包含字串記錄

1.正確的方式: 判斷欄位field_A中是否包含23: select * from table_test where FIND_IN_SET("23", field_A) ; 2.錯誤的方式

sql語句查詢包含指定字串的資料列表,完全匹配逗號中間的字串資料

查詢出,使用者表中name欄位完全包含小明的資料資訊 User表 id name userInfo 1 小明,明明 很帥 2 小明,李明 3 明天,李強 SELECT * FROM `User` where concat(',

MYSQL 查詢包含以逗號分隔的字串記錄方法

表中有個欄位是以逗號間隔儲存的mineralidmineral11,4,3221,2要根據mineral查詢這個表的資料怎麼查詢呢select * from xxx where find_in_set(2,mineral);查詢結果是 :idmineral21,2那麼 fin

Mysql replace替換的指定字串

replace用法:replace("欄位名","原字串","替代後的字串") 用法示例:替換expand_url中https為http 原資料: 為了識別率更高加上冒號 update jianjie_task_list_tg set expand_url = replac

mysql中欄儲存的值是以,隔開查詢有某個值的方法

select 欄位名from 表名where locate('3291595777767511931',欄位名) find_in_set()和like的區別:主要的區別就是like是廣泛的模糊查詢,而 find_in_set() 是精確匹配,並且欄位值之間用‘

grep 用法--查詢哪個檔案包含字串

 grep [-選項] [字串] [檔名]   尋找某字串內容工具   有些時候,我們儲存檔案時隨手亂取了一個檔名,事後自己都忘了那個檔名叫什麼,連開頭第一個字母都想不起來。那麼,如果您還記得該檔案一點特殊的詞語,應該可以用 grep 命令找到。   例如,我們想在

查詢資料庫儲存過程包含字串的所有儲存過程名稱

select name from sysobjects o, syscomments s where o.id = s.id and text like '%querytext%' and o.xtype = 'P' ORDER BY name 將querytext替

MySQL使用select子查詢

前幾天看別人的程式碼中看到在欄位中使用select子查詢的方法,第一次見這種寫法,然後研究了一下,記錄下來 大概的形式是這樣的: select a .*,(select b.another_field from b where a.id=b.aid) another_fie

mysql查詢為null時,返回空字串

原始資料:第一種:使用case  when判斷SELECT username AS virtualCardNum, realname AS realName, authenticated AS S

mysql查詢為空字串時給預設值 (2、為null時給一預設值)

1、 case when post_ask_pay.price='' then 10 else post_ask_pay.price end as priceSELECT distinct post_ask_pay.user_id as ask_user_id,post_

mysql包含關鍵字如何轉義

INSERT INTO tb_system_help2(sysid,sysname,helpid,helpname,parentid,isLeaf,`order`) VALUES(?,?,?,?,?,?,?)改成 `order` ,注意是數字鍵1旁邊的反引號`  而 不是'

mysql替換部分字串

將tbl_circle_topic 表中的pic_url 欄位中的所有 aaaa字串替換成bbbb ; UPDATE tbl_circle_topic set pic_url=REPLACE(pic_

Oracle 查詢包含多個字串方法

開發過程中遇到個需求,使用者要提取的資料列中不包含 YF、ZF、JD的字串,方法1:select * from table  where  order_no not like '%YF%' and order_no not like '%ZF' and order_no

Mysql:替換某個的部分字串——replace函式

需求:因同事操作不當,使某個欄位出現了不必要的字串,導致資料無法正常解析,需要將該字串統一去掉。解決:使用replace(obj, search, replace_str)函式;示例:將member表中的phone欄位的裡多餘的分號去掉sql語法: select 表名 set

oracle,查詢某個字元出現的次數

SELECT LENGTHB(TRANSLATE('1,2,34,5',',12345',',')) FROM DUAL;SELECT LENGTHB('1,2,34,5')-LENGTHB(REPL

MySQLconcat函式,mysql前/後增加字串

MySQL中concat函式 使用方法: CONCAT(str1,str2,…)   返回結果為連線引數產生的字串。如有任何一個引數為NULL ,則返回值為 NULL。 注意: 如果所有引數均為非二進位制字串,則結果為非二進位制字串。 如果自變數中含有任一二進位制字串,則

mysql查詢空、不為空的方法總結

1、不為空 Select   *   From   table Where id<>'' Select   *   From   table Where id!='' 2、為空 Select   *   From   table Where id='' Sele

mysql查詢資料不重複distinct及distinct的多操作

轉載自 【http://www.jb51.net/article/77997.htm】 MySQL通常使用GROUPBY(本質上是排序動作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作組合使用,通常會用到臨時表.這樣會影響效能. 在一些情況下,M

MySQL 去除的換行和回車符

解決方法:           UPDATE tablename SET  field = REPLACE(REPLACE(field, CHAR(10), ”), CHAR(13), ”);           其中:char(10):  換行符            

阿里雲 RDS下 mysql 查詢 靈活區分大小寫

RDS  mysql  查詢欄位不區分大小寫解決 select * from `d_user_register201704` where time>='2017-04-01 00:00:00