<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在某些場景下(比如:使用者上傳檔案或者圖片等),一般的做法是將檔案資訊(檔名,檔案路徑,檔案大小等)儲存到檔案表(user_file)中,然後再將使用者所有上傳的檔案的id用一個指定字元拼接然後存在表(user)中某個欄位裡(假設是:file_ids)。
在展示使用者上傳的檔案時就直接查詢檔案表中就好了:
-- 一般的語句是這樣的,假設使用者唯一鍵是id select * from file where id in(select file_ids from user where id = 1);
sql語句沒有問題,檔案也能查詢出來,但是,上傳的檔案大於1個後,再用這個sql語句查詢就只返回1條記錄了,可能就會疑惑了,為什麼只返回一條記錄???;
肯定有人做過這樣的驗證
-- 先執行下面這個sql,正確返回1,2,3 假設上傳的檔案id是1,2,3; select file_ids from user where id = 1 -- 然後返回的檔案id寫死在sql語句中,執行成功返回3條記錄 select file_ids from user where id in ('1' , '2' , '3'); -- 最後再整體試了下,結果返回一條...... select * from file where id in(select file_ids from user where id = 1) -- 然後可能會想到:我把in裡面的拼接成'1','2','3',這樣總可以了吧? select * from file where id in (select concat(''', replace(file_ids,',','','') ,''') from user where id = 1); -- concat(''', replace(file_ids,',','','') ,''') 確實能拼接成上面說的形式,但是結果還是隻有一條
是因為這個查詢只返回一個欄位,所以只會返回一條記錄(即使有多個逗號拼接,或者是手動拼接的,Mysql只認為是一個值,具體底層不清楚…),正確做法如下:
select file_ids from user where id = 1 select file_ids from user where id in ('1' , '2' , '3'); 或者 select file_ids from user where find_in_set(id , '1,2,3');
與Mysql行轉列區別:行轉列要知道列的內容,而這個不用,只需知道拼接的字元就行了
-- 下面語句將會把1,2,3,4一個欄位轉換成四行,依次是1,2,3,4 SELECT a.id, a.file_ids, substring_index( substring_index( a.file_ids, ',', b.help_topic_id + 1 ), ',' ,- 1 ) file_id FROM user a JOIN mysql.help_topic b ON b.help_topic_id < ( length(a.file_ids) - length(REPLACE(a.file_ids, ',', '')) + 1 ) where id = 1 ; -- 然後將上面語句寫在in()裡面就行了,寫在in()裡面的話記住只能查詢一個欄位哦!
上面語句可以直接複製過去,只需將a表及a表欄位換成自己的表明及欄位就行了,至於mysql.help_topic,是Mysql自帶的,不用管的。
1.字串拆分: SUBSTRING_INDEX(pressure 136/70 血壓),例如:
SUBSTRING_INDEX(pressure ,',',1) #擷取第一個逗號(,)號以前的字串 SUBSTRING_INDEX(pressure ,',',-1) #擷取倒數第一個逗號(,)號以後的字串
2.替換函數:replace( str, from_str, to_str)。例如:
UPDATE bgs_building_copy1 SET `name`=replace(`name`,'=',""); #替換等號為空字串
到此這篇關於Mysql將字串按照指定字元分割的文章就介紹到這了,更多相關Mysql字串分割內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45