有谁熟悉将LOCATE与传入的字符串varialbe一起使用?我正在尝试使用它来确定存储过程中设置的字符串中是否有逗号,但是无法使其正常工作。我的代码看起来像这样

    DECLARE string VARCHAR(10);
    DECLARE comma_found INT;

    SET string = 'hello, world';

    SET comma_found = SELECT LOCATE(',',string);

    IF( comma_found <> 0 ) THEN

         ...execute code....

    END IF;


由于SELECT LOCATE,该代码将不符合要求,我无法弄清楚出了什么问题。是我的语法吗?用法?还有其他我可以用来完成此操作的字符串处理功能吗?我在Mysql的存储过程中执行此操作。

最佳答案

我已经很长时间没有使用MySQL了,所以我并不完全熟悉较新的语法,但是通过一些谷歌搜索,我相信

SET comma_found = SELECT LOCATE(',',string);


应该

SELECT @comma_found := LOCATE(',',string);


那么您可以使用@comma_found例如:

SELECT @comma_found


似乎您正在尝试将数据集分配给变量,而不是LOCATE的结果

看到这里:http://dev.mysql.com/doc/refman/5.0/en/user-variables.html

关于sql - 在存储过程中使用LOCATE字符串函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1510731/

10-11 10:53