繁体   English   中英

基于 3 个不同值的 DB 中的 Select 行

[英]Select row from DB based on 3 different values

目前我的数据库看起来也很相似......

ID     Username     Interest
04     Tommy        Soccer
04     Tommy        Internet
32     Jack         Soccer
32     Jack         Swimming
32     Jack         Boxing

我的网站上有一个页面,用户可以在其中指定他/她的兴趣,并根据他们输入的内容显示具有相同兴趣的人。

因此,如果汤米要访问我的页面并添加“拳击”作为兴趣,杰克会出现,因为他在表格中列出了“拳击”。

我需要编写一个查询来执行此操作,但我不确定最好的方法,因为我对 PHP 还是很陌生,会不会有类似...

mysql_query(SELECT * FROM interests_table WHERE Interest = $interest1 || $interest2 || Interest3);
mysql_query("SELECT * FROM interests_table WHERE (Interest = $interest1 OR Interest = $interest2 OR Interest = $Interest3)");

更短:

mysql_query("SELECT * FROM interests_table WHERE Interest IN ($interest1, $interest2, $interest3)");

当然,您需要添加必要的参数 escaping 以获得更安全的代码。

如果您有要在数组中搜索的所有可能值,代码可能如下所示:

$interests = array('boxing', 'swimming', 'speedway');
// ... query preparation
$result = mysql_query("SELECT * FROM interests_table WHERE Interest IN (" . implode('", "', mysql_real_escape_string($interests)) . ")");
// rest of the code ...

但是这个代码只对小数据集(几到几百)有效。 如果你对列表有更多的兴趣,你应该找到更有效的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM