【发布时间】:2015-09-03 07:25:28
【问题描述】:
将字符串分配给定义的变量isWeekdays,
set @isWeekdays='calendar.monday=1 AND calendar.tuesday=1 AND calendar.wednesday=1 AND calendar.thursday=1 AND calendar.friday=1';
我希望变量 isWeekdays 在执行查询时可以替换为字符串,例如,
SELECT * FROM calendar WHERE @isWeekdays;
-- expect to
SELECT * FROM calendar WHERE calendar.monday=1 AND calendar.tuesday=1 AND calendar.wednesday=1 AND calendar.thursday=1 AND calendar.friday=1;
但是没有生效。
【问题讨论】:
-
看看MySql中的动态查询。即stackoverflow.com/questions/23178816/…
-
mysql 将变量内容视为不透明的 blob。您正在执行的操作相当于
select ... where 'solidstring'。如果您希望变量的内容作为查询的一部分被评估/执行,您必须使用动态 sql:构建一个新的查询字符串,添加变量的内容,执行新的字符串。 -
说真的,为什么还要这样做呢?你只是无聊吗?需要爱好吗?
-
@NotoriousPet0 因为我在我的 sql 查询中多次使用
@isWeekdays。现在,我知道dynamic queries可以做到。 -
为什么不让它成为您使用的任何脚本语言的变量?