iT邦幫忙

1

SQL SELECT LIKE子句 的查詢語法問題

  • 分享至 

  • xImage

請教大家,我欲使用SQL SELECT LIKE子句 查詢資料的分類,如下圖示
https://ithelp.ithome.com.tw/upload/images/20210728/20111720iQJQX63cvr.png

欲只帶出資料分類代號為1的資料,若使用語言以下語法
SELECT * FROM case WHERE case_class LIKE '%1%'

會一併帶出分類代號為11的資料,想請教大家如何使用正確的語法,讓SELECT LIKE子句,只帶出分類代號為1的資料呢?感謝大家的幫忙!


因為分類順序的關係,我再補上*,1,*,成為

SELECT * FROM case WHERE case_class = '1' OR case_class like '1,%' OR case_class like '%,1' OR case_class like '%,1,%'

即可帶出所有的資料,非常感謝 japhenchen 的協助!


最後使用㊣浩瀚星空㊣給的方式,成功又簡潔地帶出資料

SELECT * FROM case WHERE FIND_IN_SET('1', case_class)


謝謝平台,謝謝各位網友!

thanks
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
japhenchen
iT邦超人 1 級 ‧ 2021-07-28 16:36:24
最佳解答

只取出1?

SELECT * FROM case WHERE case_class = '1' 

只取出1及1,*

SELECT * FROM case WHERE case_class = '1' OR case_class like '1,%'

只取出1、1,*、*.1

SELECT * FROM case WHERE case_class = '1' OR case_class like '1,%' OR case_class like '%,1'

因為分類順序的關係,我再補上*,1,*,成為

SELECT * FROM case WHERE case_class = '1' OR case_class like '1,%' OR case_class like '%,1' OR case_class like '%,1,%'

即可帶出所有的資料,非常感謝 japhenchen 的協助!

1
純真的人
iT邦大師 1 級 ‧ 2021-07-28 16:38:07

加上逗號~

SELECT * FROM case WHERE ',' + case_class + ',' LIKE '%,1,%'

謝謝您 請問是否有相關加上逗號的學習文章可以推薦 想好好研究一下這樣的語法

這個常常是看SQL發文的經驗@@...
如果你對SQL想更多知識~你可以搜尋Google文章~
了解他們的用法~再套用到自己的SQL~
因為有些高手會寫出奇特的SQL寫法...

多多參加某些高手發的「趣味SQL」
無論會不會寫,看高手將一些奇怪的用法寫出來。也可以增加知識。
大多數來說,都是靠經驗。
簡單來講,其實看官方的文件也可以。只是大多數官方的文件太多繁雜
。有時還真的看不太下去。(我就看不下去)

0
不明

如果確定存入時已照大小排序、且只需帶出分類代號為1的資料

SELECT * FROM case WHERE SUBSTRING(case_class, 1, 1) = '1';

存入時沒有依大小排序 但存入時讓它依大小排序是一個好方法 謝謝提供 但因需取用的資料不見得會在最前面 謝謝提供方法參考

4

其實,MYSQL就有針對這種類型的欄位,IN用的函式了。如下範例

SELECT * FROM case WHERE FIND_IN_SET('1', case_class)='1';
SELECT * FROM case WHERE FIND_IN_SET('2', case_class)='2';
SELECT * FROM case WHERE FIND_IN_SET('5', case_class)='5';

您好 非常感謝 怎麼會現在才知道有這麼好用的函式了 我試著用 FIND_IN_SET 已成功精簡帶出資料 而且程式也變得更精簡了 非常感謝提供方法

Hankz iT邦新手 2 級 ‧ 2021-07-29 15:41:23 檢舉

學到了

Thanks for this. didn't know about FIND_In_SEt before. Heather | roofing contractor st petersburg fl

0

Anti peeping privacy magnetic iPhone 13 pro max case truly guards your privacy. iphone 13 pro max magsafe case

0

There are so many things I want to share with you guys and it takes a long hours if I do that. For now I share two games with you. Here are criminal finding games and free mahjong games for pc that I want you to check play. Get them by clicking the two links I drop here. Both games are amazing and free to play. Go now and invite your friends to visit the links and download the game.

0

Thanks for the questions I really enjoyed some of the points you elaborated! pelvic floor physio Barrhaven

0
heatherbergh
iT邦新手 5 級 ‧ 2021-10-10 20:57:46

SQL isn't that hard when there are tutorials like this one. credit repair laredo

0

Please keep on posting. It helps a lot. click here

0
gry8hght
iT邦見習生 ‧ 2024-10-07 11:16:36

Will probably be back to get more. Thanks https://courtmeridian.com/

我要發表回答

立即登入回答