php - Mysql中使用where和Like子句过滤数据

标签 php mysql sql

我正在 mysql 数据库中使用 LIKE 关键字过滤数据。这是以下查询:

Select c.c_id, c.c_name, slab, 
COUNT(c.c_id) as tot_visit,
SUM(t.bill) as tot_revenue, c.priority, c.ratings 
From tbl_customer c
inner join tbl_transaction t on c.c_id=t.c_id
group by c.c_id 
Where r_id="r1" AND c.slab LIKE "%teen%"

当我删除这个 -> AND c.ocation LIKE "%teen%" <- 子句时,查询工作正常..否则它会给出空行集。

我正在努力,但没有克服它。任何帮助将不胜感激。

编辑 我正在按青少年、青年和老年人的年龄层过滤数据。相同的代码在其他 php 文件中运行良好,但在本文件中则不然。

if(isset($_GET['submit']))
{
    if (isset($_GET["teen"]))
    {
        $arguments[] = "c.slab LIKE '%teen%'";
    }
    if (isset($_GET["young"])) {
        $arguments[] = "c.slab LIKE '%young%'";
    }
    if (isset($_GET["senior"]))
    {
        $arguments[] = "c.slab LIKE '%senior%'";
    }

    if(!empty($arguments)) {
      $str = implode(' or ',$arguments);
      $qry = mysql_query('Select c.c_id, c.c_name, c.slab, 
COUNT(c.c_id) as tot_visit,
SUM(t.bill) as tot_revenue, c.priority, c.ratings 
From tbl_customer c
inner join tbl_transaction t on c.c_id=t.c_id
Where r_id="r1" AND "'.$str.'" 
group by c.c_id');

不明白这一切有什么问题。请帮忙。

最佳答案

尝试在groupby之前写where条件

Select c.c_id, c.c_name, slab, 
COUNT(c.c_id) as tot_visit,
SUM(t.bill) as tot_revenue, c.priority, c.ratings 
From tbl_customer c
inner join tbl_transaction t on c.c_id=t.c_id
Where r_id="r1" AND c.occupation LIKE "%teen%"
group by c.c_id 

关于php - Mysql中使用where和Like子句过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22759842/

相关文章:

php - 自动生成PHP代码的策略?

php - 最近的个人资料访客和邮件系统

php - 如何理解qcachegrind结果?

php - htmlpurifier 删除所有由 CKEDitor 完成的格式

mysql - MySQL 中的条件 JOIN 查询

mysql - CONCAT(MySql 存储过程)内的输出参数

sql - Azure SQL 故障转移组和潜在的数据丢失

用户收藏夹系统的MySQL三表连接

购物车过滤器的MySQL查询

php - 连接 2 个 echo 并用逗号分隔 - 内爆、数组