以下查询解释了什么?

OM *_*ity -2 php mysql

以下查询解释了什么?

SELECT * FROM `jos_menu` WHERE (id = 69 OR id = 72)
Run Code Online (Sandbox Code Playgroud)

我知道它非常愚蠢的问题,但有时容易的东西会在我的头骨翻译中造成混乱.请帮忙

编辑

它给我两个ID的记录,为什么这样做?它应该是我的69或72的记录....

Cam*_*Cam 6

我认为你的意思是"解释以下查询的作用",我会这样做:

  • 从表中的所有列返回数据jos_menu.返回id为69的所有行.还返回id为72的所有行.

基本上它的作用是遍历每一行并检查:

  1. 此行的ID是69还是72?如果是,则将其添加到返回的项目列表中.
  2. 此行的ID是69还是72?如果是,则将其添加到返回的项目列表中.
  3. 此行的ID是69还是72?如果是,则将其添加到返回的项目列表中.

等等..


Gre*_*g W 6

SELECT *
Run Code Online (Sandbox Code Playgroud)

获取每列的值

FROM `jos_menu`
Run Code Online (Sandbox Code Playgroud)

从一个名为"jos_menu"的表

WHERE (id = 69 OR id = 72)
Run Code Online (Sandbox Code Playgroud)

并且只获取ID为69或72的记录

编辑:为了响应您的编辑("它给我两个ID的记录,为什么这样做?"),您可能想尝试在Sql中使用LIMIT关键字.这只会抓住第一场比赛然后停止.例如:

SELECT * FROM `jos_menu` WHERE (id = 69 OR id = 72) Limit 1
Run Code Online (Sandbox Code Playgroud)

  • (+1)虽然注意如果你同时有69和72,那么除非你添加一个`ORDER BY`,否则该查询的行为是相当未定义的 - 例如:`SELECT*FROM \`jos_menu \`ORDER BY id ASC WHERE(id = 69 OR id = 72)限制1`.当然,如果可以存在具有相同id的多个行,则行为仍然是非常未定义的,在这种情况下,您可能还想要"ORDER BY". (3认同)