首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL连接字符串?

SQL连接字符串?
EN

Stack Overflow用户
提问于 2009-04-22 19:41:11
回答 8查看 2.8K关注 0票数 2

我有一个从最终用户获取输入的查询,并将其分别与2列进行比较,并将这两列连接在一起。

代码语言:javascript
运行
复制
SELECT f_name, l_name, (f_name + ' ' + l_name) AS full_name
FROM users_table
WHERE f_name = user-input
   OR l_name = user-input
   OR 'full_name' = user-input

抱歉,大量的语法失败,但我向你保证它在程序中是正确的。

它是用PHP编写的,查询SQL server2005数据库,并且不区分大小写。

键入一个名字(名字或姓氏)将返回正确的结果,但是首先键入,然后键入空格,最后键入,则返回一个空集。

有什么想法吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-04-22 19:45:00

这是因为'full_name‘是文字而不是列名,因此在WHERE子句级别上不存在

您需要添加

代码语言:javascript
运行
复制
OR f_name + ' ' + l_name = user-input

instead of 'full_name‘=用户输入

票数 10
EN

Stack Overflow用户

发布于 2009-04-22 19:54:14

根据“授人以鱼”的理论...

不能在where或group by子句中使用列别名。您可以在order by子句中使用它。要以您想要的方式使用列别名,您必须执行如下操作:

代码语言:javascript
运行
复制
SELECT [Full Name] FROM
  (SELECT f_name, l_name, f_name + ' ' + l_name AS [Full Name]
   FROM users_table)
  WHERE [Full_Name] = @paramVal
票数 5
EN

Stack Overflow用户

发布于 2009-04-22 19:45:53

“full_name”是文字字符串,而不是列...

(f_name +‘’+ l_name) =用户输入

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/778863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档