首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将mysql列“附加”到另一列

问如何将mysql列“附加”到另一列
EN

Stack Overflow用户
提问于 2015-11-19 06:02:58
回答 3查看 64关注 0票数 1

我已经建立了一个搜索功能,在我的网站上使用类似的mysqli查询。

也就是说。

代码语言:javascript
复制
$contact = $mysqli->query("SELECT * FROM contact WHERE f_name LIKE '%$searching%' OR l_name LIKE '%$searching%'");

让我说我有个联系人

  • f_name:鲍勃
  • l_name:陈

如果我在输入字段中输入' bob‘,如果我键入'chan’,它也会成功地找到bob。

我想要做的是输入'bob chan‘并让它找到联系人。

我想有什么方法可以“追加”mysqli列?就像..。

代码语言:javascript
复制
$contact = $mysqli->query("SELECT * FROM contact WHERE f_name.' '.l_name LIKE '%$searching%'");

在这种情况下,正确的语法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-19 06:05:41

可以使用CONCAT(str1,str2,...)函数连接多个值。

代码语言:javascript
复制
SELECT * FROM contact WHERE concat( f_name, ' ', l_name ) LIKE '%$searching%'

文档参考:

CONCAT(str1,str2,...) 返回连接参数所产生的字符串。可能有一个或多个论点。如果所有参数都是非二进制字符串,则结果是一个非二进制字符串。如果参数包含任何二进制字符串,则结果是二进制字符串。数值参数转换为其等效的非二进制字符串形式。 如果任何参数为空,则CONCAT()返回NULL。 mysql>选择CONCAT('My','S','QL');'MySQL‘mysql>选择CONCAT('My',NULL,'QL');空mysql>选择CONCAT(14.3);'14.3’ 对于引用的字符串,可以通过将字符串放置在彼此旁边来执行连接: mysql>选择'My‘S’'QL';'MySQL‘

票数 1
EN

Stack Overflow用户

发布于 2015-11-19 06:07:23

在MySQL中执行字符串连接的表达式将使用CONCAT函数。

代码语言:javascript
复制
  CONCAT(f_name,' ',l_name)
票数 0
EN

Stack Overflow用户

发布于 2015-11-19 06:13:02

虽然您可以连接数据库中的字段,但是如果这样做,就会遇到问题。例如,如果使用bob chan搜索concat(f_name, ' ', l_name) LIKE %searching%,则不会在结果集中获得bobby chan,因为bob chan不在bobby chan中(中间有by )。

更好的选择是拆分搜索字符串:$parts = explode(' ', $searching),然后使用您的原始筛选器:

代码语言:javascript
复制
WHERE f_name LIKE '%$parts[0]%' OR l_name LIKE '%$parts[1]%'

作为附带说明,您将希望通过转义字符串来防止注入。

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

https://stackoverflow.com/questions/33796377

复制
相关文章

相似问题

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