Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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
Mysql SQL:选择所有与值“x”匹配的记录,但在值“y”出现时停止_Mysql_Sql - Fatal编程技术网

Mysql SQL:选择所有与值“x”匹配的记录,但在值“y”出现时停止

Mysql SQL:选择所有与值“x”匹配的记录,但在值“y”出现时停止,mysql,sql,Mysql,Sql,我的表中有一列包含值0或1。 现在我想选择1的最后一个周期的开始 假设下一个表有两列。1的最后一个周期是ID的4和3。 此期间的开始为ID=3 ID值 5 - 0 mysql中的4-1 SELECT min(id) FROM table_name WHERE id > 3 AND value = 1 在php中,您需要用数字“3”替换开始时使用的数字 我相信这就是答案,尽管我可能不完全理解您的问题。您可以尝试查找值为1的最高id,其中最接近的较低id的值为0。 在sql中,这将是: SE

我的表中有一列包含值0或1。 现在我想选择1的最后一个周期的开始

假设下一个表有两列。1的最后一个周期是ID的4和3。 此期间的开始为ID=3

ID值

5 - 0 mysql中的4-1

SELECT min(id)
FROM table_name
WHERE id > 3 AND value = 1
在php中,您需要用数字“3”替换开始时使用的数字


我相信这就是答案,尽管我可能不完全理解您的问题。

您可以尝试查找值为1的最高id,其中最接近的较低id的值为0。 在sql中,这将是:

SELECT p1.id FROM periods p1
WHERE p1.value = 1
AND ( SELECT p2.value FROM periods p2 
      WHERE p2.id<p1.id 
      ORDER BY p2.id DESC LIMIT 1 ) = 0
ORDER BY p1.id DESC LIMIT 1

这些表之间的关系是什么?只是一个表。Id和VALUE都是列。你想要所有的Id都是值为1的,对吗?Id列实际上是某种序列号,按时间顺序排列?@MoyedAnsari不,他想要的是最后一个连续的1。在这种情况下,我假设记录4和3。