欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql分割逗號

呂致盈2年前7瀏覽0評論

在使用MySQL數據庫時,有時需要將一個字段中的多個值使用逗號隔開存儲,例如一個用戶可能有多個愛好,那么可以將其存儲為“籃球,足球,游泳”等形式,但是在查詢時又需要將其分割成單個的值,因此需要使用MySQL內置的函數對其進行分割操作。

--假設有一張名為users的表,其中包含一個名為hobbies的字段,存儲著各個用戶的愛好
SELECT * FROM users;
--結果如下:
|   id  |  name  |  hobbies      |
+-------+--------+---------------+
|   1   |  張三   |  籃球,足球,游泳  |
|   2   |  李四   |  閱讀,旅游,美食  |
|   3   |  王五   |  聽音樂,看電影,上網 |
--現在需要查詢每個用戶的單個愛好,可以使用MySQL內置函數SUBSTRING_INDEX進行分割操作,如下:
SELECT id, name, SUBSTRING_INDEX(hobbies, ',', 1) AS hobby1, SUBSTRING_INDEX(SUBSTRING_INDEX(hobbies, ',', 2), ',', -1) AS hobby2, SUBSTRING_INDEX(hobbies, ',', -1) AS hobby3 FROM users;
--解釋:SUBSTRING_INDEX(str,delim,count)函數可以將字符串str按照delim進行分割,并返回前count個(若count為正數)或后count個(若count為負數)分割出來的子串;
--運行結果如下:
|   id  |  name  |  hobby1   |  hobby2   |  hobby3   |
+-------+--------+-----------+-----------+-----------+
|   1   |  張三   |  籃球    |  足球    |  游泳    |
|   2   |  李四   |  閱讀    |  旅游    |  美食    |
|   3   |  王五   |  聽音樂  |  看電影  |  上網

以上便是使用MySQL函數進行分割逗號的方法,值得注意的是,如果數據量較大,則會影響到查詢的效率,因此建議在設計表結構時避免使用此種方式存儲多個值,可以考慮建立中間表進行存儲關聯關系。