说,我们有10列,如何从MySQL更多的选择或匹配
col1,col2 ... col10;
如何选择一行where col1 = "some" OR col2= "some" OR col3= "somethingelse" ... OR col10 = "who knows";
,与最高或匹配?
row1匹配col1,col2,col3,col4
;
row2匹配col1,col4
;
想选择row1
,
说,我们有10列,如何从MySQL更多的选择或匹配
col1,col2 ... col10;
如何选择一行where col1 = "some" OR col2= "some" OR col3= "somethingelse" ... OR col10 = "who knows";
,与最高或匹配?
row1匹配col1,col2,col3,col4
;
row2匹配col1,col4
;
想选择row1
,
你想要的是一个通配符列的搜索。 (意思是col *的所有列)。
这不能不完全由MySQL AFAIK。 您可以按照以下方式获取匹配列,然后使用php构建查询。
SELECT COLUMN_NAME
FROM information_schema.`COLUMNS` C
WHERE table_name = 'yourTable' AND COLUMN_NAME LIKE 'col%'
使用匹配列构建在PHP中的字段列表(又名破灭领域进入“COL1” =“X”或“COL2” =“X”等
希望这有助于 。夏嘉曦
谢谢,我会尝试 – somekindofdude
你可以做什么会是这样的:
SELECT col1, col2, col3
FROM tblName
ORDER BY (IF(col1="some",1,0)
+IF(col2="some",1,0)
+IF(col3="somethingelse",1,0)...
+IF(coln="who knows",1,0))
Desc
做这种方式将使大部分的比赛排在列表的顶部,您可以在t加限制1个语句他结束只显示最匹配的行。
我也在想这种方式,想找到其他方式,谢谢,我想我会这样做 – somekindofdude
“最高OR匹配”是什么意思? – xdazz
'OR'不是唯一的。你在想'XOR',op? – Amber