91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql查詢結果怎么實現多列拼接查詢

發布時間:2022-04-06 10:49:27 來源:億速云 閱讀:345 作者:iii 欄目:開發技術

這篇文章主要介紹“mysql查詢結果怎么實現多列拼接查詢”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mysql查詢結果怎么實現多列拼接查詢”文章能幫助大家解決問題。

之前遇到過一個問題,mysql數據庫中有兩個表,一張地址表存放省市區等位置信息,另一張用戶表里存在三個字段分別對應地址表中的三個位置信息(很奇怪的表格式),如圖:

mysql查詢結果怎么實現多列拼接查詢

mysql查詢結果怎么實現多列拼接查詢

現在需要查詢user表中的數據,并根據user表中省市區的值,在地址表中查詢到對應的位置信息(name)并顯示出來;

本人對sql并不精通,所以捋了一個大致邏輯

首先要得到user表的省市區三個字段的值,我們一般的查詢方式是

SELECT province,city,district FROM `user` WHERE id =1;

這個比較簡單,得到的結果為一行三列的值,如圖:

mysql查詢結果怎么實現多列拼接查詢

這是正常的寫法,之后使用這個結果為查詢條件,去查詢地址表中的name即可.

當然想法似乎不錯,但這個查詢出來的結果是分為三段的,并不利于我們后面的查詢,總不能取出結果后再進行處理再查詢吧,這樣太麻煩了,這時候要用到sql的兩個函數,CONCAT_WS和CONCAT,兩個函數的作用是將結果拼接為一個字符串,具體的用法可以自行百度.這里就不多做介紹了:)

所以我們的查詢語句就可以寫成SELECT CONCAT_WS(',',province,city,district) AS ids FROM `user` WHERE id =1;得到的結果如圖:

mysql查詢結果怎么實現多列拼接查詢

有了這個結果我們基本上可以去查詢到地址信息了,同樣的在查詢地址信息的時候我們也做了相應的拼接,所以最終的sql是這樣的

SELECT GROUP_CONCAT(`name`) FROM address WHERE id IN (SELECT CONCAT_WS(',',province,city,district) FROM `user` WHERE id =1);

理想中的結果如圖:

mysql查詢結果怎么實現多列拼接查詢

但實際上,這個語句并不能得到我們想要的結果,原因是SELECT CONCAT_WS(',',province,city,district) FROM `user` WHERE id =1查詢出的結果是一個字符串,而字符串卻不能作為查詢條件中In的條件來使用,所以查詢的結果并不是我們想要的.

再分析下我們的思路并沒有問題,那么怎么才能用這個字符串作為查詢條件,并最終得出我們想要的結果呢?根據網上的資料得知,查詢條件in的內容只能是數字型的,所以他并不支持字符串的查詢,所以這里我們還需要一個函數,instr.說實話這也是我第一次知道這個函數,畢竟對mysql真的只是會一點增刪改查的皮毛,哈哈.那么接下來我們來試試這個函數的效果,最終的sql為

SELECT
  GROUP_CONCAT(`name`)
FROM
  address
WHERE INSTR(
    (SELECT
      CONCAT_WS(',', province, city, district)
    FROM
      `user`
    WHERE id = 1),
    id
  ) ;

執行后的結果也是我們想要的.當然上邊的語句只是實現了查找到地址的結果,具體的可以根據業務需求繼續修改,mysql的函數不得不說確實很強大.今后還是要多學習才是;

所以,最終的sql為:

SELECT
  GROUP_CONCAT(`name`)
FROM
  address
WHERE INSTR(
    CONCAT(
      ',',
      (SELECT
        CONCAT_WS(',', province, city, district)
      FROM
        `user`
      WHERE id = 1),
      ','
    ),
    CONCAT(',', id, ',')
  ) ;

關于“mysql查詢結果怎么實現多列拼接查詢”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜丰县| 遵义县| 绥滨县| 新巴尔虎左旗| 安溪县| 陆河县| 泸水县| 许昌县| 微山县| 巴林左旗| 保亭| 会昌县| 平安县| 莱西市| 财经| 灌云县| 布拖县| 浙江省| 新安县| 镇宁| 凌海市| 同江市| 沙坪坝区| 怀来县| 龙川县| 荆州市| 福清市| 佛冈县| 蓬莱市| 长宁区| 大洼县| 鸡泽县| 眉山市| 尤溪县| 比如县| 和静县| 天全县| 怀来县| 永顺县| 镇赉县| 紫阳县|