在Mysql中,如何从上次选择数据中选择新数据

时间:2017-07-06 09:00:20

标签: php mysql

使用PHP。 然后在mysql hava这个表中

Id     where    name    sex
1      CN       X.ming  boy
2      US       Tom     boy
3      US       jom     boy
4      US       Kim     girl

=====================

首先我需要到达select * from table where=US

然后需要得到男孩select * from (last select) where sex=boy

我发现获取代码是

SELECT * FROM (SELECT * FROM table WHERE where=US) AS a WHERE sex=boy;

但这不好也不快。

情况下: // 我的英语不好,所以我的回复很慢......抱歉!!

5 个答案:

答案 0 :(得分:2)

首先,您不能在表格列名中使用保留字(推荐)。 where是一个保留字,因此请将其更改为位置或其他内容。查询如下:

SELECT * FROM TABLENAME WHERE location = 'US' AND sex = 'boy';

答案 1 :(得分:2)

你过度复杂化了,你可以在where子句中有多个东西

SELECT * FROM table WHERE `where`='US' AND sex='boy';

请注意,您还需要围绕文本值的引号,以及保留字周围的反引号,where显然是一个保留字。考虑该列的另一个列名称会更好。

同样sex通常记录为malefemale或甚至MF而不是男孩和女孩。

答案 2 :(得分:2)

为什么不链接这些条件?

SELECT * FROM table WHERE `where` = 'US' and `sex` = 'boy';

此外,将reserved keywords用于列名称也是一个坏主意(此处:"其中")。

答案 3 :(得分:2)

巧妙地思考,您可以在where子句中放置尽可能多的列。 通过使用' AND' 等运算符来检查其他条件是否为真,' OR' 如果任何已定义的条件为真。

目前的情况就是使用。

select * from (SELECT TOP 1 * FROM Table ORDER BY ID DESC) where sex = 'male' 

答案 4 :(得分:0)

更改从表到位置的位置

  $servername = "localhost";
  $username = "username";
  $password = "password";
  $dbname = "yourDB";

  $conn = new mysqli($servername, $username, $password, $dbname);
  if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
  } 


  $result = $conn->query('SELECT * FROM table WHERE `location` = "US"');

  while($row = $result->fetch_assoc()) {
      if($row['sex']==boy) $data2[] = $row;
      $data1 = $row;
  }

$ data1包含US和$ data2的列表,其中包含美国男孩的列表