显示包含" a"的所有城市:
SELECT * FROM user WHERE city LIKE '%a%'; -- works fine
正确的语法是什么:
SET @param = 'city';
SELECT * FROM user WHERE @param LIKE '%a%'; -- NOT yielding any rows
在MySQL Workbench查询中进行了测试
答案 0 :(得分:2)
正确的语法如下:
SET @param = 'city';
SET @statement = CONCAT('SELECT * FROM user WHERE ', @param, ' LIKE ', '"%a%"');
PREPARE myquery FROM @statement;
EXECUTE myquery;
DEALLOCATE PREPARE myquery
要记住的事情:
...用户WHERE城市LIKE'%a%&#39 ;;
而不是:
... userWHEREcityLIKE'%a%'
'%的%'应该成为'"%a%"'
最后DEALLOCATE - 你宣布了一个全局var' myquery'默认有效,直到会话重置 - 可能导致冲突和错误
提示要查看CONCAT()的结果,请使用
SELECT @statement
答案 1 :(得分:0)
您可以使用
select id,date,@statement as any_name from table_name ;
SET @statement = (SELECT To_days( date_f ) - TO_DAYS( date ) FROM `table_name `);