gpt4 book ai didi

mysql - 查询具有一个值的两个组合字段

转载 作者:行者123 更新时间:2023-11-29 13:22:51 25 4
gpt4 key购买 nike

例如,我有一个表名称“user”。我在此表中有字段“姓名”和字段“家庭”。

我在我的网站中使用 jQueryUI 自动完成功能来搜索热门搜索,就像 Facebook 一样。

我使用的 jQueryUI 示例(半代码):

$( "#mainsearch" ).bind( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).data( "ui-autocomplete" ).menu.active ) {
event.preventDefault();
}
})

我有 PHP 文件获取搜索结果代码,如下所示:

$name = $_GET['term'];
$results = array();
$s = qselectall("select * from user where(name LIKE '%$name%' or family LIKE '%$name%' ) limit 15",$db);
while($f = mysqli_fetch_array($s,MYSQLI_ASSOC)){
if($userid != $f['id']){
$name = $f['name'].' '.$f['family'];
$url = $siteurl.$f['username'].'/';
array_push($results, array('id' => $f['id'],'value' => $name,'url' => $url));
}
}
echo json_encode($results);

但它有 1 个问题。用户无法使用姓名和家庭进行搜索。他们必须在输入框中插入姓名或家庭才能正常工作。

是否有用于搜索 LIKE where( name and family = $text) 的 SQL 代码?

示例:
我们有一个名字为“alex”且姓氏为“alexian”的人。那么用户搜索“alex alexian”但没有得到任何结果,为什么?
因为表中不是名字也不是家庭 = 'alex alexian'。因此,他们必须搜索“alex”或“alexian”才能正常工作。

最佳答案

试试这个:

SELECT * FROM user
WHERE concat_ws(' ',name,family)
LIKE '%$name%';

concat_ws 函数“使用分隔符”(_ws) 连接多个列。在本例中,分隔符是空格 (' ')。请参阅MySQL documentation欲了解更多信息。

演示:http://www.sqlfiddle.com/#!2/aac0f/8

关于mysql - 查询具有一个值的两个组合字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20554898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com