Sql在wordpress中表现得很奇怪

时间:2018-05-02 17:02:20

标签: mysql sql wordpress bigint

我最近开始开发一个wordpress插件,因为我需要一张桌子......

我已经使用了以下代码(除了准备它并且没有直接注入$ table_name变量,加上我已应用默认的collat​​e)在我的wordpress插件激活期间创建我的表: / p>

  "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工作)

magic SQL

我的第一个想法是,由于一些奇怪的原因,这个值可能溢出(甚至tho(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 个答案:

答案 0 :(得分:1)

问题是您在start_hour列名称周围添加了单引号。您实际上是将字符串与值“start_hour”与值“1”进行比较,这会产生一个真值,因此会返回所有行。

您应该使用后面的刻度字符(`)来封装列/表名,而不是单引号,因为单引号被解释为文字字符串。

select start_hour from wp_t128customCalendarBookings WHERE `start_hour` < 1