gpt4 book ai didi

php - 如何从mysql库中选择第一条记录之后的第二条记录

转载 作者:行者123 更新时间:2023-11-29 14:41:32 24 4
gpt4 key购买 nike

1. p1 | cat   | mause
2. p2 | mause | cat

你好,我想根据条件从数据库中选择 2 条记录。我的查询:

SELECT * FROM mytable 
WHERE (p1 LIKE cat OR p2 LIKE cat) AND (p1 LIKE mause OR p2 LIKE mause)

好的,这个查询将选择 2 行,它将选择包含“cat”和“mause”的每一行,这是一个问题,因为我只想选择第一行,因为首先我选择“cat”,然后 p3 中的下一个是“老鼠”。

在第二行中,“mause”位于 p1 列,因此不应选择该行,因为“cat”位于“mause”之后。

__________对我的问题的一些更新_____________

下面是我的数据库表示例。所有记录都定义为 VARCHAR。我必须写链接,因为我在 stackoverflow 中的声誉很低,而且我无法在此处粘贴图像。

Link to image with database

我想选择从拉斯维加斯到芝加哥的路线。但是当我执行此查询时:

    SELECT * FROM mytable 
WHERE (station1 LIKE Las Vegas OR station2 LIKE Las Vegas OR station3 LIKE Las Vegas) AND (station1 LIKE Chicago OR station2 LIKE Chicago OR station3 LIKE Chicago)

它将选择包含拉斯维加斯和芝加哥的所有行,但我不想选择数据库中芝加哥排在第一位的路线。我只想选择表格中拉斯维加斯在芝加哥之前的这条航线。所以它只是第一行“第 1 行”。

第 2 行拉斯维加斯位于芝加哥之后(拉斯维加斯站 3 号,芝加哥站 2),所以我不想,第 3 行也是如此。

我想现在大家都清楚了。

最佳答案

不太确定我明白你的意思,但我猜!这样可以吗?:

SELECT * 
FROM myTable
WHERE (station1 LIKE '%Las Vegas%' AND (
station2 LIKE '%Chicago%' OR
station3 LIKE '%Chicago%' OR
station4 LIKE '%Chicago%' OR
station5 LIKE '%Chicago%')
) OR
(station2 LIKE '%Las Vegas%' AND (
station3 LIKE '%Chicago%' OR
station4 LIKE '%Chicago%' OR
station5 LIKE '%Chicago%')
) OR
(station3 LIKE '%Las Vegas%' AND (
station4 LIKE '%Chicago%' OR
station5 LIKE '%Chicago%')
) OR
(station4 LIKE '%Las Vegas%' AND (
station5 LIKE '%Chicago%')
)

为了生成这样的 WHERE 子句,您可以执行以下操作:

$arr_sta = array('station1', 'station2', 'station3', 'station4');
$nbstations = count($arr_sta);
$where = '';
for($i=0; $i<$nbstations-1; $i++) {
$where .= $where ? ' OR (' : ' WHERE (';
$where .= $arr_sta[$i] . " LIKE '%Las Vegas%'";
$where2 = '';
for($j=$i+1; $j<$nbstations; $j++) {
$where2 .= $where2 ? ' OR ' : ' AND (';
$where2 .= $arr_sta[$j] . " LIKE '%Chicago%'";
}
if ($where2) $where .= $where2 . ')';
$where .= ')';
}

关于php - 如何从mysql库中选择第一条记录之后的第二条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880235/

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