通过短查询选择多条记录

Posted

技术标签:

【中文标题】通过短查询选择多条记录【英文标题】:Select multiple records by short query 【发布时间】:2012-12-29 11:27:59 【问题描述】:
function comp_post_code($comp_post_code)
global $host, $dbname, $user, $pass;
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); ///*** for error handling
$STH = $DBH->prepare("SELECT * from uk_data where 
comp_post_code like :comp_post_code and cat1 like :cat");
$STH->bindValue(':cat', "%$cat1%", PDO::PARAM_STR);
$STH->bindValue(':comp_post_code', "%$comp_post_code%", PDO::PARAM_STR);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);
return $STH;

我有 cat1 到 cat10 .. 我想在不写长代码的情况下获得数据输出

 and comp_post_code like :comp_post_code and cat2 like :cat
 and comp_post_code like :comp_post_code and cat3 like :cat

我有办法解决这个问题......我们可以编写 ong 代码并退出,但仍然想知道我们可以用其他方式吗?

表结构

comp_post_code 猫1 猫2 三类 第四类

【问题讨论】:

可以发一下表结构吗? (cat1..cat10 是表列?) @FlorinelChis 是的,你是,我已经编辑了问题... :cat 应该在 all cat[1-n] 或 any 列中找到? @FlorinelChis 我正在搜索,如果邮政编码像 B91% 并且猫在任何猫中(从猫 1 到猫 9)它应该在输出中...... 【参考方案1】:

根据您的 cmets 提供的详细信息:

SELECT * from uk_data where 
comp_post_code like :comp_post_code AND (
cat1 like :cat OR
cat2 like :cat OR
cat3 like :cat OR
cat4 like :cat OR
cat5 like :cat OR
cat6 like :cat OR
cat7 like :cat OR
cat8 like :cat OR
cat9 like :cat OR
cat10 like :cat
)

【讨论】:

以上是关于通过短查询选择多条记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 中选择通过连接到另一个具有多条记录的表的最新记录

Android 无法通过 API 接收多条记录

Oracle通过一个字段的值将一条记录拆分为多条记录

使用 CodeIgniter 查询从同一列中选择多条记录

如何编写在 Mysql 触发器中获取多条记录的选择查询?

Oracle通过一个字段的值将一条记录拆分为多条记录