首页  >  问答  >  正文

将在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 天前491

全部回复(1)我来回复

  • P粉128563140

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

    只需使用 CONCAT 即可确保变量值两侧的通配符。否则,先使用 CONCAT_WS作为分隔符的参数在字符串末尾返回双通配符,相当于单通配符并产生不期望的结果。

    LIKE 'product%%'
    
    LIKE 'product%'
    

    但是,CONCAT 将按照您的预期返回通配符:

    LIKE '%product%'
    

    回复
    0
  • 取消回复