Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将值与多个列名称相同的表中的列值进行比较?_Php_Mysql_Mysqli - Fatal编程技术网

Php 如何将值与多个列名称相同的表中的列值进行比较?

Php 如何将值与多个列名称相同的表中的列值进行比较?,php,mysql,mysqli,Php,Mysql,Mysqli,我在数据库中有五个不同的表,它们的列名相同。我想检查字符串值是否与五个表中任何一个表的列值匹配 例如:我有一个包含第八标准考试结果的数据库。五个不同的表格包含每个学生的分数。第一个表包含第8节A的标记。第二个表包含第8节B的标记。第三个表包含第8节C的标记。依此类推 所有表都有相同的列名。卷号、数学成绩、历史成绩、地理成绩和社会学习成绩 我想找一个数学成绩超过90分的人。我想知道mysqli的单个查询 提前感谢。假设相同的学生不会出现在多个表中,您应该能够将五个表合并,但有关您的设计的一些评论,

我在数据库中有五个不同的表,它们的列名相同。我想检查字符串值是否与五个表中任何一个表的列值匹配

例如:我有一个包含第八标准考试结果的数据库。五个不同的表格包含每个学生的分数。第一个表包含第8节A的标记。第二个表包含第8节B的标记。第三个表包含第8节C的标记。依此类推

所有表都有相同的列名。卷号、数学成绩、历史成绩、地理成绩和社会学习成绩

我想找一个数学成绩超过90分的人。我想知道mysqli的单个查询


提前感谢。

假设相同的学生不会出现在多个表中,您应该能够将五个表合并,但有关您的设计的一些评论,请参见下文:

SELECT *
FROM table1
WHERE math_marks > 90
UNION ALL
SELECT *
FROM table2
WHERE math_marks > 90
UNION ALL
SELECT *
FROM table3
WHERE math_marks > 90
UNION ALL
SELECT *
FROM table4
WHERE math_marks > 90
UNION ALL
SELECT *
FROM table5
WHERE math_marks > 90;

这里更好的设计是使用一个包含所有学生分数的表。您可以为学生ID、分区和班级设置一列。这将使查询和跟踪事情变得更容易。

相同的响应,但您可以添加额外的字段以了解学生来自哪个部分

SELECT a.no as student, a.math, "A" as Section FROM a WHERE a.math > 90
UNION
SELECT b.no as student, b.math, "B" as Section FROM b WHERE b.math > 90
UNION
SELECT c.no as student, c.math, "C" as Section FROM c WHERE c.math > 90
UNION
SELECT d.no as student, d.math, "D" as Section FROM d WHERE d.math > 90
UNION
SELECT e.no as student, e.math, "E" as Section FROM e WHERE e.math > 90

我认为我们应该给他一个更好的桌子结构来做这件事too@plonknimbuzz假设OP可以控制设计,但事实可能并非如此。。我忘了。@plonknimbuzz要用示例数据写出正确的模式,需要做很多工作。如果你有什么想法的话,欢迎你发帖子。