gpt4 book ai didi

php - SQL 查询 ID 号以逗号分隔的列?

转载 作者:行者123 更新时间:2023-11-29 07:50:59 34 4
gpt4 key购买 nike

脚本:

<?php

include("connect.php");

?>
<?php

echo "<h1>The Hashtag: </h1>";
if(isset($_GET['hashtag'])){
echo $_GET['hashtag'];
}


// Select the ID of the given hashtag from the "hashtags" table.
$tqs = "SELECT `id` FROM `hashtags` WHERE `hashtag` = '" . $_GET['hashtag'] . "'";
$tqr = mysqli_query($dbc, $tqs) or die(mysqli_error($dbc));
$row = mysqli_fetch_assoc($tqr);

// This prints e.g.:
// 100
echo "<br/><br/>";
print_r($row['id']);

// Select the threads from the "thread" table which contains the hashtag ID number.
$tqs_two = "SELECT * FROM `thread` WHERE `hashtag_id` IN ('" . $row['id'] . "')";
$tqr_two = mysqli_query($dbc, $tqs_two) or die(mysqli_error($dbc));
$row_two = mysqli_fetch_assoc($tqr_two);

echo "<br/><br/>";
print_r($row_two);

?>

脚本应按主题标签的 ID 号选择行。它应该查看表的“hashtag_id”列,看看是否可以在那里找到该 ID 号,如果可以在那里找到,那么它应该选择该行。

ID 号位于“hashtag_id”列内,以逗号分隔。

示例:

98, 99, 100

基本上,有没有办法执行 SQL 查询来查看列是否“包含”该 ID 号或者可能有其他内容?

如有任何建议,我们将不胜感激。

最佳答案

正如 Jay 所说,您可以使用“包含”。但你需要小心谨慎;如果您正在查找“9”的 hashtag_id,则查询需要避免返回“19”、“99”、“93”等。为此,您必须依赖该 hashtag_id 字段中数据的精确格式。如果您的数字确实是用逗号和空格分隔的,则可以通过执行“hashtag_id LIKE '%, 9,'”轻松找到不在查询开头或结尾的精确匹配项。但是,这不会在 hashtag_id 字段的开头或结尾找到任何内容。要捕获这些,您还需要“hashtag_id LIKE '9, %'”和“hashtag_id LIKE '%, 9'”。

因此,要捕获所有三种可能性:

SELECT * FROM `thread` WHERE `hashtag_id` LIKE '9,%' or `hashtag_id` LIKE '%, 9,%' or `hashtag_id` LIKE '%, 9';

关于php - SQL 查询 ID 号以逗号分隔的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26429576/

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