我希望能够从任一列中选择值,其中列a或b不是我指定的值。
让我解释一下。
我在网站上有一张桌子,好像这样:
columna | columnb
6774 887
887 2423
3434 887
3434 6774
887 3455
887 33444
343434 2343
Columna告诉您是谁发送了请求。
我们的用户目前是887,如何使用MySQL我能找出他是谁的朋友?
由于
答案 0 :(得分:2)
SELECT (CASE WHEN columna = 887 THEN columnb ELSE columna END) AS 'columnAlias'
FROM <table>
WHERE columna = 887
OR columnb = 887
修改 使用上述查询的结果从另一个表中获取详细信息记录...
使用JOIN:
SELECT T2.*
FROM Table2 AS T2
INNER JOIN (SELECT (CASE WHEN columna = 887 THEN columnb ELSE columna END) AS 'columnAlias'
FROM Table1
WHERE columna = 887
OR columnb = 887) AS _Temp ON _Temp.columnAlias = T2.ForeignKeyColumn
使用嵌套查询:
SELECT T2.*
FROM Table2 AS T2
WHERE T2.ForeignKeyColumn IN (SELECT (CASE WHEN columna = 887 THEN columnb ELSE columna END) AS 'columnAlias'
FROM Table1
WHERE columna = 887
OR columnb = 887)
答案 1 :(得分:0)
您可能需要WHERE语句,查询看起来像SELECT ... WHERE columna = 887 OR columnb = 887
答案 2 :(得分:0)
轻松选择多列
SELECT columna, columnb FROM ...
然后要排除值不匹配的结果,可以使用WHERE子句
... WHERE (columna != 887 OR columnb != 887)
答案 3 :(得分:0)
WHERE有资格说伙伴“887”处于EITHER位置......你不在乎。选择FIELD将获得OTHER ID ...所以如果A = 887,则抓住B,否则为“B”,即887并获得A人。
select
if( b.ColumnA = 887, b.ColumnB, b.ColumnA ) as OtherPerson
from
Buddies b
where
887 in( b.ColumnA, b.ColumnB )
答案 4 :(得分:0)
确保在更多条件的情况下将条件统一起来:
其中(a!= 1或b!= 1) 和c =某事