sql在wordpress中的行为异常

5uzkadbs  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(255)

我最近开始开发一个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;

有没有人能帮我解决这个怪事?

aydmsdu9

aydmsdu91#

问题是你把单引号放在 start_hour 列名。实际上,您将一个值为“start\u hour”的字符串与值为“1”的字符串进行比较,结果是一个真值,因此所有行都返回。
应该使用反勾号(`)来封装列/表名称,而不是单引号,因为单引号被解释为文本字符串。

select start_hour from wp_t128customCalendarBookings WHERE `start_hour` < 1

相关问题