我正在使用类别,产品关系来查找数据.我的情况就像我有一个类别表和产品表与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)
为什么这不能给出适当的结果.
此函数返回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) 我有一张桌子
电磁脉冲表
+--+----+--------------+
|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 个单词怎么办?