+ -
当前位置:首页 → 问答吧 → 请问,存储过程里的IF字符串比较只能用strcmp吗?直接用'a'='a'会报错啊……

请问,存储过程里的IF字符串比较只能用strcmp吗?直接用'a'='a'会报错啊……

时间:2011-08-17

来源:互联网

如果是IF strcmp('abc','abc') THEN
.....
就没事

如果是 IF 'abc'='abc' THEN
...
就报语法错误

不过,select 'abc'='abc'就没事,相同就是1,不同就是0

这个语法有点怪啊~~

作者: yifulou   发布时间: 2011-08-17

这就是语法

作者: rucypli   发布时间: 2011-08-18

估计是个BUG

作者: ACMAIN_CHM   发布时间: 2011-08-18

报啥语法错误呢?我测试可以,是否版本问题?

SQL code

mysql> DROP FUNCTION IF EXISTS  tt;
Query OK, 0 rows affected

mysql> DELIMITER $$
mysql> CREATE FUNCTION `tt`() RETURNS int(5)
BEGIN
    IF 'abc' = 'abc' THEN
        RETURN 0;
    ELSE
        RETURN 1;
     END IF;
END$$
Query OK, 0 rows affected

mysql> DELIMITER ;
mysql> SELECT tt();
+------+
| tt() |
+------+
|    0 |
+------+
1 row in set

mysql> SELECT VERSION();
+--------------------+
| VERSION()          |
+--------------------+
| 5.1.6-alpha-nt-max |
+--------------------+
1 row in set

mysql> 

作者: nicenight   发布时间: 2011-08-18