В настольном приложении C# я использую MySqlConnection MySqlCommand cmd.CommandText:

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

to selects records, but I'm trying to find out, how to use OR operator with condition, if I want check both user OR email from single input like string UserOrEmail = textBox1.Text.Trim();.

.

Похоже, что условие работает для username= или email=, но в этом случае проверка следующих значений не работает, похоже, что я должен использовать какой-то правильный способ здесь:

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

iose936

Ответов: 1

Ответы (1)

Вам нужны круглые скобки, потому что оператор 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 + "'";

2022 WebDevInsider