我最近开始开发一个wordpress插件,因为我需要一个表。。。
我在激活wordpress插件的过程中使用了以下代码(除了已经准备好并且没有直接注入$table\u name变量,另外我还应用了默认的collate)来创建我的表:
"CREATE TABLE $table_name, id bigint(20) NOT NULL AUTO_INCREMENT,
userid bigint(20),
start_hour int(12) NOT NULL,
end_hour int(12) NOT NULL,
accepted bit,
deleted bit,
UNIQUE KEY id(id);"
在我添加了一些数据之后,我尝试了几个行为正确的查询,直到(抱歉,意大利的设置,我正在处理客户的wamp)
我的第一个想法是,可能由于某种奇怪的原因(即使(2^32)/2应该是2.147.483.648,而我的值是1.525.910.400),所以我将它转换为bigint(20),但结果没有改变。
我希望这个查询不会返回任何结果,而我希望这是查询的结果:
SELECT COUNT(*)
FROM wp_t128customCalendarBookings
WHERE 'start_hour' BETWEEN 1525910400 AND 1525912200 OR
'end_hour' BETWEEN 1525910400 AND 1525912200;
有没有人能帮我解决这个怪事?
1条答案
按热度按时间aydmsdu91#
问题是你把单引号放在
start_hour
列名。实际上,您将一个值为“start\u hour”的字符串与值为“1”的字符串进行比较,结果是一个真值,因此所有行都返回。应该使用反勾号(`)来封装列/表名称,而不是单引号,因为单引号被解释为文本字符串。