douyi6290 2016-10-12 00:10
浏览 48
已采纳

关于网络服务器上嵌套算术MySQL查询的问题

I made a little webapp maded with PHP+HTML5+JS, the app work flawless on my local webserver (on my laptop), I'm using XAMPP v3.2.2 with Server version: 10.1.9-MariaDB mariadb.org binary distribution.

I uploaded all files and imported the database to a webserver, and I get an weird error in one PHP file that exec a MySQL query to the database.

I got the query and manually exec on my local phpMyAdmin and works with no errors, but in the webserver there is a syntax error :(

This is an example of the query:

SELECT DISTINCT 100 AS cyear, DATE_FORMAT( personas.fecha, '%d/%m/%Y' ) AS fecha, 1 AS numb, personas
.id_persona, personas.distancia, (
    personas.rating - (
        SELECT valor.valor FROM valor WHERE valor.valor=1 AND valor.distancia=(
            SELECT personas.distancia WHERE personas.id_persona=1))) AS calc, (personas.rating +
 personas.rating - (
                SELECT valor.valor FROM valor WHERE valor.valor=1 AND valor.distancia=(
                    SELECT personas.distancia WHERE personas.id_persona=1))) As clase, personas.rating
FROM personas, valor WHERE personas.id_persona=1 AND valor.valor=1

The Error: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax

What's is wrong? I have hours trying to find out, maybe I use some deprecated functions? Thanks for reading and please forgive that bad english.

  • 写回答

1条回答 默认 最新

  • douejuan9162 2016-10-12 12:11
    关注

    You are missing FROM personas in two places.

    For some reason MariaDB doesn't mind it but MySQL sees it as a syntax error.

    Here's the fixed code: (No syntax errors.)

    SELECT DISTINCT 100 AS cyear, DATE_FORMAT( personas.fecha, '%d/%m/%Y' ) AS fecha, 1 AS numb, personas
    .id_persona, personas.distancia, (
        personas.rating - (
            SELECT valor.valor FROM valor WHERE valor.valor=1 AND valor.distancia=(
                SELECT personas.distancia FROM personas WHERE personas.id_persona=1))) AS calc, (personas.rating +
     personas.rating - (
                    SELECT valor.valor FROM valor WHERE valor.valor=1 AND valor.distancia=(
                        SELECT personas.distancia FROM personas WHERE personas.id_persona=1))) As clase, personas.rating
    FROM personas, valor WHERE personas.id_persona=1 AND valor.valor=1
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码