2013-09-26 37 views
-1

我的数据库表有(其他字段)字段'firstname'&'姓氏' - 但是当我从我的用户表单收集数据时,我允许他们只是指定'name ',以便于数据输入。所以,当我做这个查询时,我会查看两个'用户姓名'搜索项'姓氏''&'姓氏'列。可能在一个MySQL WHERE语句中指定2列

我想知道有没有可能MySQL的语法来做到这一点,而不诉诸这种事情:

... WHERE (firstname = 'barrios' OR lastname = 'barrios') AND ... 

的东西,也许是这样的:

... WHERE (firstname OR lastname = 'barrios') AND ... 

我没有实际尝试过这种尚未但语法上它看起来是正确的 - 在我把它带到测试之前有人知道它的 可能

谢谢所有...

+4

作为一个经验法则,StackOverflow用户会希望在发布问题之前尝试过某些东西。尝试一下您的查询(您不需要括号),如果您遇到问题,我确信有人会乐意帮助 –

+0

“语法上它看起来不错”。不完全是。它'感觉'是正确的,但它在语法上是错误的,因为它不尊重SQL语法。第一个查询是非常正确的,你会习惯它。 – Grzegorz

+0

要跟踪spryno的评论,如果您无法访问控制台,请不要担心 - [sqlfiddle](http://swlfiddle.com)。 –

回答

1

那么,如果你愿意,你可以这样来做:

WHERE 'barrios' IN (firstname, lastname) 

(但是,这会当然只为一个“平等”的比较工作,如果你想在LIKE或东西带给以后那么你将不得不求助于“更长”的语法。)

+0

但是'barrios'IN(名字,姓氏)'本质上被翻译成''barrios'= firstname或'barrios'= lastname',所以它仍然是两个比较.. –

+0

当然,我没有说这是否则。问题是关于语法,而不是关于可能的性能收益或什么。 – CBroe

+0

嗯..我重新读了这个问题,是的,你说得对。我只是假定他是在效率之后,而不是语法;否则这是一个非常愚蠢的问题(+1) –

1

不,这是不可能的。你有使用第一种语法。

0

不,这是不可能的,会提示语法错误。你有使用第一种语法。