在我的数据库中,我有一个名为'model'的表。以下是其中大部分内容:
iphone 4 16gb white t-mobile
和另一个:
iphone 4 32gb black kpn
现在我想用查询选择那些不同的iPhone。
$query = mysql_query("SELECT * FROM db WHERE model LIKE '%iphone 4%' AND '%16gb%'") or die(mysql_error());
我希望我的查询查找“iphone 4”,然后查找“16gb”。所以它只输出16GB的iPhone 4。上面的查询无效。这是我的语法吗?或者这样不可能吗?
答案 0 :(得分:3)
$query = mysql_query("SELECT * FROM db WHERE model LIKE '%iphone 4%' AND model LIKE '%16gb%'") or die(mysql_error());
答案 1 :(得分:3)
尝试此查询:
SELECT * FROM db WHERE model LIKE '%iphone 4%' AND model LIKE '%16gb%'
您不能在SQL中使用以下表达式:
model LIKE '%iphone 4%' AND '%16gb%'
您需要完全陈述两个表达式:
model LIKE '%iphone 4%' AND model LIKE '%16gb%'
答案 2 :(得分:0)
从以下位置更改您的SQL查询:
$query = mysql_query("SELECT * FROM db WHERE model LIKE '%iphone 4%' AND '%16gb%'") or die(mysql_error());
为:
$query = mysql_query("SELECT * FROM db WHERE model LIKE '%iphone 4%' AND model LIKE '%16gb%'") or die(mysql_error());
答案 3 :(得分:0)
你几乎在那里,但你需要在16gb上明确说明比较
SELECT * FROM db WHERE model LIKE '%iphone 4%' AND model Like'%16gb%'
答案 4 :(得分:0)
这是语法
$query = mysql_query("SELECT * FROM db WHERE model LIKE '%iphone 4%16gb%'") or die(mysql_error());
或者注意,这并没有考虑ORDER,如上所述。
$query = mysql_query("SELECT * FROM db WHERE model LIKE '%iphone 4%' AND model like '%16gb%'") or die(mysql_error());
答案 5 :(得分:0)
我认为问题是你需要一个子查询,即
select *
from (select * from db where model LIKE '%iphone 4%') xx
where xx.model like '%16gb%'
内部查询构建了一组所有iphone 4模型,外部查询获得了16gb的模型。