本文目錄一覽:
- 1、有沒有在MySQL FIND
- 2、mysql中有沒有和find
- 3、MySQL查詢某個欄位包含某個值–FIND_IN_SET
- 4、JPA 的 Criteria 查詢,怎麼使用 Mysql 的 find
- 5、sqlserver 中有沒有mysql中find
- 6、Mysql資料庫中FIND_IN_SET();在HIbernate中怎麼使用。比如,如何傳參;
有沒有在MySQL FIND
mysql手冊中find_in_set函數的語法:
FIND_IN_SET(str,strlist)
假如字元串str 在由N 子鏈組成的字元串列表strlist 中,則返回值的範圍在 1 到 N 之間。
一個字元串列表就是一個由一些被『,』符號分開的子鏈組成的字元串。如果第一個參數是一個常數字元串,而第二個是type SET列,則 FIND_IN_SET() 函數被優化,使用比特計算。
如果str不在strlist 或strlist 為空字元串,則返回值為 0 。如任意一個參數為NULL,則返回值為 NULL。這個函數在第一個參數包含一個逗號(『,』)時將無法正常運行。
mysql SELECT FIND_IN_SET(‘b’,’a,b,c,d’);
– 2 因為b 在strlist集合中放在2的位置 從1開始
mysql中有沒有和find
弄個測試表來說明兩者的區別
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `test` (
`id` int(8) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`list` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
INSERT INTO `test` VALUES (1, ‘name’, ‘daodao,xiaohu,xiaoqin’);
INSERT INTO `test` VALUES (2, ‘name2’, ‘xiaohu,daodao,xiaoqin’);
INSERT INTO `test` VALUES (3, ‘name3’, ‘xiaoqin,daodao,xiaohu’);
原來以為MySQL可以進行這樣的查詢:
select id, list, name from table where ‘daodao’ IN (list); (一)
實際上這樣是不行的,這樣只有當name是list中的第一個元素時,查詢才有效,否則都得不到結果,即使’daodao’真的在list中。
MySQL查詢某個欄位包含某個值–FIND_IN_SET
文章中有標籤欄位(label),存的是標籤ID字元串。
現在想在文章列表進行篩選,根據標籤篩選出對應標籤的文章
但是不能用like。SO,FIND_IN_SET函數就大顯身手了
FIND_IN_SET(str,strlist)
str 要查詢的字元串
strlist 欄位名 參數以」,」分隔 如 (1,2,6,8,10,22)
查詢欄位(strlist)中包含(str)的結果,返回結果為null或記錄
倘若想搜索標籤ID為2的文章:
SELECT id,label FROM dk_info where FIND_IN_SET (‘2’,label)
倘若想搜索標籤ID為3的文章:
SELECT id,label FROM dk_info where FIND_IN_SET (‘3’,label)
JPA 的 Criteria 查詢,怎麼使用 Mysql 的 find
string connection = 「Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=」 + filetoread;
//從表中查詢所有數據
string sqlQuery = 「select * from Student」;
//打開資料庫
OdbcConnection con = new OdbcConnection(connection);
//對資料庫進行操作
OdbcCommand cmd = new OdbcCommand(sqlQuery,con);
sqlserver 中有沒有mysql中find
在mysql中,有時我們在做資料庫查詢時,需要得到某欄位中包含某個值的記錄,但是它也不是用like能解決的,使用like可能查到我們不想要的記錄,它比like更精準,這時候mysql的FIND_IN_SET函數就派上用場了!
Mysql資料庫中FIND_IN_SET();在HIbernate中怎麼使用。比如,如何傳參;
其實是可以使用的,我今天就遇到這個問題,但是必須 這麼用 :
在jdbc的SQL中可以不用寫比較符,比如:
select * from t_user where find_in_set(‘zs’,username) ;
當然也可以這樣用:
select * from t_user where find_in_set(‘zs’,username)0
而在hibernate的HQL語句中,必須這樣用:
from User u where find_in_set(‘zs’,u.username)0 ;
即『0』必須帶上,否則會報錯。
如果使用動態參數:
Map par = new HashMap();
par.put(“buying_patterns”, buying_patterns);
Hibernate hql語句 find_in_set 用法
gqo.addQuery(“find_in_set(:buying_patterns,obj.buying_patterns)0”, par);
說明:1:buying_patterns buying_patterns 要傳的屬性值(:表示佔位符)
2.obj.buying_patterns 表名.屬性名
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/300640.html