MySQL选择与OR运算符

问题描述

在 C# 桌面应用程序中,我使用 MysqLConnection MysqLCommand cmd.CommandText:

"select * from reg where username='" + user + "' and password='" + pass + "' and key='" + key + "'";

选择记录,但我想弄清楚,如果我想从单个检查 OR user OR输入如 email

看起来条件适用于 string UserOrEmail = textBox1.Text.Trim();username=,但在这种情况下,以下值检查不起作用,似乎我必须在这里使用一些正确的方法

email=

解决方法

您需要括号,因为运算符 AND 的优先级高于 OR

"select * from reg where (username='" + UserOrEmail + "' or email='" + UserOrEmail + "') and password='" + pass + "' and key='" + key + "'";

或使用运算符 IN:

"select * from reg where '" + UserOrEmail + "' in (username,email) and password='" + pass + "' and key='" + key + "'";