【问题标题】:SQL syntax when hosting on 000webhost在 000webhost 上托管时的 SQL 语法
【发布时间】:2015-01-28 21:53:30
【问题描述】:

我正在尝试在本地主机上以 PHP 代码运行 MySQL 查询。当我托管数据库和 PHP 页面时,它运行良好。 000webhost 的 phpMyAdmin 数据库不断地使用错误的 SQL 语法调用我的查询。我已经重新检查了列名,但它们都是一样的。

以下是我的查询和 000webhost 数据库给出的错误:

select * from taxi
    where 'registration_number' NOT IN (
        select 'taxi_registration_number' from shift
        where 'shift_date' = 'sysdate'
    );

给出的错误是

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 '' 附近使用正确的语法

【问题讨论】:

  • 没有@halfer。这只是我在这里复制的东西。即使我删除“仍然错误仍然存​​在。
  • 不可能。您连接的主机不会改变 SQL 语法。

标签: mysql syntax-error mysql-error-1064


【解决方案1】:

您不能在列标识符周围使用单引号。要么使用刻度,要么什么都不用。

SELECT 
    *
FROM
    taxi
WHERE
    `registration_number` NOT IN (SELECT 
            `taxi_registration_number`
        FROM
            shift
        WHERE
            `shift_date` = 'sysdate');

【讨论】:

  • ^ 右括号,@Worried_user?你现在遇到什么错误?
  • select * from tax where registration_number NOT IN (select taxi_registration_number from shift where shift_date = 'sysdate') 这个 ^ 是准确的 sql 查询,它是重复出现的错误,说语法错误。当我在 000webhost 中的托管数据库上运行它时
  • @halfer 我的错。我什至更正了这个 -> )仍然存在错误。我真的很惊讶。你能帮忙吗:(
  • @Worried_user:我看不出您的查询有任何问题,现在您已更正了您的评论。您可能需要设置一个sqlfiddle.com 供我们查看。我的猜测是远程服务器中的查询和/或结构与本地的查询/结构不同(我认为它可以工作)。
  • 另外,还有一件事@halfer。如果我需要在我的数据库中设置提醒/警报。这样它就可以在MOT等到期日/之前发出警报。我应该使用什么程序。我是数据库新手。另外我想我必须使用 cron 作业或类似的东西。 (我听说)你能帮忙吗?通过证明任何有用的链接或其他东西
【解决方案2】:

删除引号:

select * from taxi where registration_number NOT IN (
   select taxi_registration_number from shift where shift_date = 'sysdate'
);

【讨论】:

    猜你喜欢
    • 2019-08-06
    • 2021-04-28
    • 2010-11-09
    • 2014-10-10
    • 2021-04-20
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多