首頁  >  問答  >  主體

將在MySQL 8的SELECT語句中傳遞變數

我正在嘗試一個帶有變數的簡單選擇語句。如果我更改類似 concat_ws('%', @S, '%'); 的語句,則該語句可以正常運作。到一個字串。看來 select 語句沒有選取 SET 變數。非常感謝您的幫忙。我使用的是Mysql80工作台。

SET @S = "product";
SELECT distinct idproducts FROM mgjtest.vorutaflamedsamheit
WHERE productname like concat_ws('%', @S, '%');
````````````````````````````````````````````````````````````````

P粉764836448P粉764836448244 天前480

全部回覆(1)我來回復

  • P粉128563140

    P粉1285631402024-02-18 00:11:42

    只需使用 CONCAT 即可確保變數值兩側的通配符。否則,先使用 CONCAT_WS作為分隔符號的參數在字串末尾返回雙通配符,相當於單通配符並產生不期望的結果。

    LIKE 'product%%'
    
    LIKE 'product%'
    

    但是,CONCAT 將依照您的預期傳回通配符:

    LIKE '%product%'
    

    回覆
    0
  • 取消回覆