编写更准确的问题:
我有一个表:id,supplierCode,propertyCode,规范。在搜索产品时,我希望得到的产品规格有像value1和value2这样的文本,所以为了得到这些产品我想要一个像这样的查询:
SELECT * FROM tbl WHERE (specification LIKE '%value1%' OR specification LIKE '%value2%') AND (those 2 got rows has the same supplierCode)
或者从问题的另一方面:获取所有supplierCode,其中具有相同supplierCode的行在规范列中具有LIKE'%value1%'和LIKE'%value2%'
例如:
id supplierCode propertyCode,specification
1 001234 11 i7-blabla
2 001234 13 15.3“
3 004321 15 i7-9761
4 004321 16 15.4“
5 003214 14 i7-15.3“
如果我正在搜索'i7'和'15 .3''我可以获得001234和003214因为他们的规格中有i7和15.3“
答案 0 :(得分:1)
你可以使用IN子句 - 肯定会更多地研究这个问题,你肯定会在网络的某个地方找到解决方案。
SELECT * FROM tbl
WHERE specification IN ('value1', 'value2')
AND propertyCode = 'SOME_VALUE'
答案 1 :(得分:0)
使用LIKE
代替= sign
SELECT *
FROM tbl
WHERE (
specification LIKE CONCAT('%', value1, '%') OR
specification LIKE CONCAT('%', value2, '%')
) AND
propertyCode = valueHere
但是如果您确定使用规范值,请使用IN
而不是OR
(实际上它们是相同的)
SELECT *
FROM tbl
WHERE specification IN ('value1','value2') AND
propertyCode = valueHere
答案 2 :(得分:0)
您可以使用赞关键字
答案 3 :(得分:0)
SELECT * FROM tbl
WHERE (specification='%value1%' OR specification='%value2%')
group by propertyCode
答案 4 :(得分:0)
$find = mysql_query("SELECT * FROM `tbl` WHERE (`specification` LIKE '%$value1%' OR `specification` LIKE '%$value2%') AND `propertyCode`='$propertycode'")or die(mysql_error());
$display = mysql_fetch_array($find);
请记住,您需要更改PHP变量,因为您没有包含任何我必须假设您正在寻找上述内容。
此外,如果您要创建列表,则需要在获取时使用while语句。