mysql - 使用 ORDER 和 LIMIT 子句时 sql 查询中的语法错误?

标签 mysql

使用 ORDER 和 LIMIT 时存在语法错误。我对mysql不熟悉,能否指出错误。

ps = con.prepareStatement("Select product_id,image_name,images.product_name,price,"
                       + "company_name from images,products"
                       + "where images.product_name = products.product_name ORDER BY hits DESC LIMIT 5");

最佳答案

问题是在连接字符串时 productswhere 之间没有空格,所以查询最终看起来像

... from images,productswhere images.product_name = ...

在其中一个字符串中添加一个空格:

ps = con.prepareStatement("Select product_id,image_name,images.product_name,price,"
                       + "company_name from images,products"
                       + " where images.product_name = products.product_name ORDER BY hits DESC LIMIT 5");

您没有说明您使用的是哪种编程语言,但许多语言允许字符串跨行,因此您不需要串联。然后你可以写:

ps = con.prepareStatement("Select product_id,image_name,images.product_name,price,company_name 
                        from images,products
                        where images.product_name = products.product_name
                        ORDER BY hits DESC LIMIT 5");

关于mysql - 使用 ORDER 和 LIMIT 子句时 sql 查询中的语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865292/

相关文章:

c# - Entity Framework Code-First 启动时太慢

php - 保护我的 html 表单免受注入(inject)

php - 尝试循环遍历 MySQL 结果时出现连续错误

mysql - 使用 MySQL 匹配子表中的多行

mysql - 在没有ORDER BY的情况下反转MySQL表的 "natural order"?

MySQL 一对多关系 : GROUP_CONCAT or JOIN or both?

mysql - EXPLAIN SELECT 在其他数据库中

mysql - 以带有标题的 CSV 格式导出 SQL 表

php - 查找 while 循环中的最后一次迭代(PHP 和 MYSQL)

php - 如何通过php和MySQL显示数据?