gpt4 book ai didi

php - 比较相同数据mysql的两个选择查询结果

转载 作者:行者123 更新时间:2023-11-30 22:37:11 24 4
gpt4 key购买 nike

我正在制作测试应用程序,用户将在输入框中输入他们选择的查询,应用程序必须比较它们是否与“正确答案”查询相同。

“正确答案”查询在数据库中,比较选择由用户输入。

我读过 EXCEPT 和 INTERSECT,但它们在 mysql 中不存在。

例如我有这个数据库结构:db pic

申请问题:

  1. 列出名字为 Yana 但姓氏不为 Taylor 的所有女学生的名字、姓氏和出生日期。

正确答案-

SELECT FIRSTNAME, LASTNAME, DATEOFBIRTH 
FROM PERSON
JOIN STUDENTS ON PERSONID=STUDENTID
WHERE GENDER=’F’ AND FIRSTNAME=’YANA’ AND LASTNAME<>’TAYLOR’

我想检查返回的结果是否相同。错误的答案将是 mysql 查询,例如带有别名列的查询:

SELECT FIRSTNAME as first_name, LASTNAME as last_name, DATEOFBIRTH as date_of_birth ....

甚至 like 语句(如果它返回更多结果):

WHERE GENDER=’F’ AND FIRSTNAME LIKE '%YANA%' AND LASTNAME<>'TAYLOR'

所以我的问题是如何比较两个查询的结果:

  • 他们返回的行数相同
  • 它们的列名相同
  • 来自同一张 table
  • 并可能返回一些指示它们是否相同的正确或错误指示?

最佳答案

在我看来,最好的方法是运行两个查询(存储查询和类型化查询),然后将两个结果读取到单独的数组中,并分析结果:

  • 每个数组中的 count() 将判断行数是否相等。
  • 如果您使用返回的字段名称将数组放在一起,将很容易看出它们是否相同。
  • 如果两个结果集匹配,您甚至不必担心表格是否正确。
  • 您可以使用 PHP 数组操作函数以您可能需要的任何方式比较行。一个简单的 if($array1 === $array2) 将告诉您两个数组是否具有相同的键和值。

如果你不需要分析SQL语句的格式,只需要知道查询是否运行良好,是否带来了正确的数据,那么这个方法就足够了。

关于php - 比较相同数据mysql的两个选择查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32209864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com