网络服务器上的嵌套算法 MySQL 查询问题
Issue on nested arithmetics MySQL queries on webserver
我用 PHP+HTML5+JS 制作了一个小网络应用程序,该应用程序在我的本地网络服务器(在我的笔记本电脑上)上运行完美,我使用的是 XAMPP v3 .2.2 与服务器版本:10.1.9-MariaDB mariadb.org 二进制分发。
我上传了所有文件并将数据库导入到网络服务器,但我在执行 MySQL 数据库查询的一个 PHP 文件中遇到了一个奇怪的错误。
我在我的本地 phpMyAdmin 上收到查询并手动执行并且没有错误,但在网络服务器中存在语法错误:(
这是一个查询示例:
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
错误: #1064 - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册以了解正确的语法
怎么了?我有几个小时试图找出答案,也许我使用了一些已弃用的功能?感谢阅读,请原谅我的英语不好。
您在两个地方缺少 FROM personas
。
出于某种原因,MariaDB 并不介意,但 MySQL 将其视为语法错误。
固定代码如下:(没有语法错误。)
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
我用 PHP+HTML5+JS 制作了一个小网络应用程序,该应用程序在我的本地网络服务器(在我的笔记本电脑上)上运行完美,我使用的是 XAMPP v3 .2.2 与服务器版本:10.1.9-MariaDB mariadb.org 二进制分发。
我上传了所有文件并将数据库导入到网络服务器,但我在执行 MySQL 数据库查询的一个 PHP 文件中遇到了一个奇怪的错误。
我在我的本地 phpMyAdmin 上收到查询并手动执行并且没有错误,但在网络服务器中存在语法错误:(
这是一个查询示例:
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
错误: #1064 - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册以了解正确的语法
怎么了?我有几个小时试图找出答案,也许我使用了一些已弃用的功能?感谢阅读,请原谅我的英语不好。
您在两个地方缺少 FROM personas
。
出于某种原因,MariaDB 并不介意,但 MySQL 将其视为语法错误。
固定代码如下:(没有语法错误。)
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