显示包含“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查询中测试
正确的语法如下:
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%';
而不是 :
... userWHEREcityLIKE'%a%'
'%a%'应成为'“%a%”'
选择@statement
您可以使用
select id,date,@statement as any_name from table_name ;
SET @statement = (SELECT To_days( date_f ) - TO_DAYS( date ) FROM `table_name `);