小编rAV*_*AVi的帖子

从mysql中的两个表中查找不常见的数据

我正在使用类别,产品关系来查找数据.我的情况就像我有一个类别表和产品表与categoryid和产品类型.不,假设我有一个特定的类型,我想找到特定类型的产品没有的那些类别.表结构就像

Category Table
____________
|Id|Category|
| 1|    X   |
_____________

Product Table
____________________________
|ID | Product|Category| Type|
| 1 | Y      | 1      | 2   |
_____________________________
Run Code Online (Sandbox Code Playgroud)

我可以通过使用子查询来找到它

SELECT * 
FROM   category 
WHERE  id NOT IN(SELECT category 
                 FROM   product 
                 WHERE  type = 2); 
Run Code Online (Sandbox Code Playgroud)

有没有办法通过另一种方式获得它

我也喜欢使用JOIN

SELECT * 
FROM   category AS c 
       JOIN products AS p 
         ON c.id <> p.category 
WHERE  p.type = 2 
Run Code Online (Sandbox Code Playgroud)

为什么这不能给出适当的结果.

php mysql sql join

5
推荐指数
1
解决办法
2709
查看次数

Php递归函数返回null,而变量有值

此函数返回NULL,而$ alias在第二次递归中具有值.在第一次调用时,它返回所需的值,但是如果第一次调用不匹配,则首先在$ alias变量中以可用的值递归所需的值,但它不返回任何内容.

public function checkAlias($fname='',$lname=''){

        if(!empty($fname)){
        $fname = mysql_real_escape_string($fname);
        }
        if(!empty($lname)){
        $lname = mysql_real_escape_string($lname);
        }

    $alias = strtolower($fname).strtolower($lname);
    $sql = "Select ALIAS from table where ALIAS = '$alias'";
    $query = mysql_query($sql);
    $row = mysql_fetch_row($query);
    $string_length = strlen($alias) - 1;
    $result_string = substr($alias,0,$string_length);

    if(!$row){
            print $alias;   // is printing value 
        return $alias;  // but here it returns null
    }else{
        $this->checkAlias($result_string);
        } 
    }
Run Code Online (Sandbox Code Playgroud)

php recursion

2
推荐指数
1
解决办法
2115
查看次数

检查某个单词是否出现在以空格分隔的单词列中

我有一张桌子

电磁脉冲表

+--+----+--------------+
|ID|Name|Address       |
+--+----+--------------+
|1 |Jack|Street  Road  |
+--+----+--------------+
|2 |Jill|Park Side Lane|
+--+----+--------------+
Run Code Online (Sandbox Code Playgroud)

我想在地址的每个单词上使用Where子句,这怎么可能?

我正在使用像这样的选择查询

SELECT *
FROM emp 
WHERE
SUBSTRING_INDEX(address, " " ,1 ) = ?
OR
SUBSTRING_INDEX(SUBSTRING_INDEX(address, " " ,2 ) , " " , -1) = ?
OR
SUBSTRING_INDEX(SUBSTRING_INDEX(address, " " ,3 ) , " " , -1) = ?;
Run Code Online (Sandbox Code Playgroud)

但是如果我的地址字段中有超过 3 个单词怎么办?

mysql sql

2
推荐指数
1
解决办法
79
查看次数

标签 统计

mysql ×2

php ×2

sql ×2

join ×1

recursion ×1