gpt4 book ai didi

php - 只用一个查询解决?

转载 作者:行者123 更新时间:2023-11-29 00:19:38 24 4
gpt4 key购买 nike

我有下表:

CREATE TABLE list(
country TINYINT UNSIGNED NOT NULL,
name VARCHAR(10) CHARACTER SET latin1 NOT NULL,
name_index INT UNSIGNED NOT NULL,
UNIQUE KEY(country, name), PRIMARY KEY(country, name_index)) ENGINE = INNODB

我想:

给定:($country, $name, $new_index)

  1. 检查是否存在包含 country = $country && name = $name 的行。
  2. 如果该行存在,则获取索引$index = name_index
  3. 如果该行不存在,则添加它,然后获取索引。

我可以使用多个查询来执行以下操作,但我正在寻找一种仅使用一个查询的高效方法。这可能吗?

最佳答案

只有一个查询是不可能的。

你可以这样做:

$sql = "SELECT name_index FROM (your table) WHERE country = '$country' AND
name = '$name' LIMIT 1";
$query = mysql_query($sql);
$numrows = mysql_num_rows($query);
if($numrows == 1) {
$row = mysql_fetch_row($query);
$index = $row[0];
} else {
$sql = "INSERT INTO (your table) (country, name)
VALUES('$country','$name')";
$query = mysql_query($sql);
$check = mysql_num_rows($query);
if($check > 0) {
$sql = "SELECT name_index FROM (your table) WHERE country = '$country' AND
name = '$name' LIMIT 1";
$query = mysql_query($sql);
$row = mysql_fetch_row($query);
$index = $row[0];
} else {
echo "Error occured while trying to insert new row";
}
}

希望这有帮助:)。

关于php - 只用一个查询解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21560866/

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