【phpmysqllike实现多关键词搜索的方法】教程文章相关的互联网学习教程文章

php-准备好的参数LIKE语句不适用于SQLSRV【代码】

我正在将SQLSRV 3.0用于PHP并使用MSSQL2008. 我遇到的问题是,我无法在查询中使用LIKE语句来工作吗?$connectionOptions = array( "Database"=>$myDB, "UID"=>$myUser, "PWD"=>$myPass); $conn = sqlsrv_connect( $myServer, $connectionOptions);$params = array("$sID%","$sUser%" ); $sql = "select * from tbl where col2 LIKE ? or col2 LIKE ?";$stmt = sqlsrv_query($conn, $sql, $params); if( $stmt === false) {die( prin...

php-使用LIKE的带空格的MySQL搜索字符串【代码】

我正在我的网站上进行搜索,但是当您在搜索中输入多个单词时,我发现它不起作用.这是查询的要点:SELECT * FROM `blog` WHERE `content` LIKE '%$keyword%' OR `title` LIKE '%$keyword%' ORDER BY `id` DESC奇怪的是,当我在phpMyAdmin中测试查询时,它将返回预期的结果.但是,在我的网站上找不到任何结果. 我尝试用%s替换关键字中的空格,但这没有任何改变.解决方法:问题是LIKE会进行模式匹配,而不是实际搜索关键字.您应该在数据库列上...

php – 使用MySQL中的LIKE子句优化搜索表

我正在为我的网站的消息部分构建搜索功能,并且拥有一个超过9,000,000行的消息数据库,以及发件人,主题和消息字段的索引.我希望在我的查询中使用LIKE mysql子句,例如(ex) SELECT发件人,主题,消息FROM Messages WHERE消息LIKE’%EXAMPLE_QUERY%’; 检索结果.遗憾的是,当存在前导通配符时,MySQL不使用索引,这对于搜索查询可能出现在消息中的任何位置(这是通配符的工作原理,不是吗?).查询非常非常慢,我也不能使用全文索引,因为烦人的...

php – 如何在MongoDB中进行“LIKE”查询工作?【代码】

我有一个街道名称列表,我想选择以“Al”开头的所有内容.在我的MySQL中,我会做类似的事情SELECT * FROM streets WHERE "street_name" LIKE "Al%"使用PHP的MongoDB怎么样?解决方法:使用正则表达式:db.streets.find( { street_name : /^Al/i } );要么:db.streets.find( { street_name : { $regex : '^Al', $options: 'i' } } );http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions 把它变成...

php – Mysql中的数组WHERE LIKE?【代码】

我需要使用数组列表进行SELECT. $array_name包含:Array ( [0] => gum.cn [1] => lol.com. [2] => ns1.blar.com [3] => test.com [4] => web.cn. )print_r($array_name); 06001为什么不上面的工作呢?我搜索其他示例,问题是不使用LIKE子句,所以没有解决方案.请提前帮助,谢谢.解决方法:它不起作用,因为您的查询将扩展为:SELECT url FROM `PHP`.`db` WHERE url LIKE '%gum.cn,lol.com.,ns1.blar.com...%'您必须稍微修改一下您的查询...

PHP PDO MySQL查询LIKE – >多个关键字【代码】

我在MySQL中有一个用户表,希望按名称搜索.现在我有以下代码:<?php $search = @$_GET['q']; $search = strtoupper($search); $search = strip_tags($search); $search = trim($search);$query = $con->prepare('SELECT * FROM `users` WHERE name LIKE ?'); $query->execute(array('%'.$search.'%'));$result = $query->rowCount(); echo $result; ?>问题是我想拥有多个关键字.让我们说有人打字“这里应该是一个人的好名字”然后它...

PHP PDO编写语句 – MySQL LIKE查询【代码】

我试图通过php的PDO类(mysql驱动程序)进行搜索.我有以下查询使用MySQL客户端(更改表名以保护无辜):SELECT hs.hs_pk, hs.hs_text, hs.hs_did, hd.hd_did, hd.hd_text, hv.hv_text, hc.hc_text FROM hs LEFT JOIN hd ON hs.hs_did = hd.hd_did LEFT JOIN hd ON hd.hd_vid = hv.hv_id LEFT JOIN hc ON hd.hd_pclass = hc.hc_id WHERE hs.hs_text LIKE "%searchTerm%" LIMIT 25;无论我使用什么搜索...

PHP PDO准备语句MySQL计数选择X LIKE【代码】

使用PHP v.5.2.14和PDO-MySQL扩展. 我是准备好的陈述的新手.需要创建一个搜索表单(如此用户输入)和一个工作查询“选择所有X其中X喜欢…”的多样性. 代码和结果:$sql = 'SELECT COUNT(*) as num_books from t_books where title LIKE :search_term'; // Later access as num_books $prep = $dbh->prepare($sql); $num = $prep->execute(array(':search_term' => '%'.$search_term. '%')); $total=$num->fetchColumn();$prep的Var转...

php – 如何使用带有时间戳的mysql“LIKE”语法?【代码】

我想允许我的用户在数据库中搜索某一天提交的行.使用date()函数将日期输入数据库中的字段,这很好,但是当我使用php strtotime函数时,日期并不完全相同. 有一些聪明的mysql函数可以帮助我吗?解决方法:我以前遇到过这个问题. 您最好生成开始日期和结束日期,然后使用BETWEEN函数. 所以像这样:$start_date = "2009-01-01 00:00:00"; $end_date = "2009-01-01 23:59:59";$sql = "SELECT * FROM table WHERE date BETWEEN '$start_date'...

php – MySQL使用LIKE命令在分号之间查找【代码】

这是我的数据385_white 99 swarovski 12 black;blue 386_white 99 swarovski 12 black;blue;green 387_white 99 swarovski 12 yellow;green 389_white 99 swarovski 12 white;silver 385_white 99 swarovski 12 silver这是一个示例查询SELECT * FROM `products` WHERE `category` LIKE 'swarovski' AND `colours` LIKE 'silver'返回的结果是空的.如果用户是黑色的,那么它应该返回第一个记录.我没办...

php – 在MySQL PDO中使用LIKE和%时,不返回大写的行【代码】

好的,所以说我正在搜索“SineadEvelyn”,我输入“sinead”它找不到这个人,但“Sinead”没有,有没有办法告诉它寻找类似我输入的内容? 我正在做这样的搜索:$db->sqlquery(" SELECT `user_id` FROM `users` WHERE `username`LIKE ?", array("%$user%"));解决方法:这取决于该领域的整理. 如果排序结束_cs然后它区分大小写,如果它结束_ci然后不区分大小写. 更改字段的属性,索引/搜索将跟随.

php – 如何在使用LIKE时按大多数匹配对MySQL结果进行排序【代码】

我目前正在处理一个必须显示特定表中所有文章列表的查询,但它必须根据搜索表单对列表进行排序,以便首先显示包含最多/最佳匹配的文章,然后显示根本没有任何匹配将按字母顺序排序. 我已经使这个代码工作得很好,虽然我找不到按大多数匹配/相关性对匹配进行排序的方法. 这是我的代码:$search = $_POST["searhwords"]; $search = preg_replace('/\s+/', ' ',$search);$SearchQueryArray = str_replace(",", "", $search); $SearchQuery...

php – Code Igniter – 使用where和like的MySQL查询【代码】

我已经搜索过每一个答案,但没有描述我想要的东西,或者我没有理解它们.所以这就是我的问题.我想要一个像这样的“复杂”查询:select * from MyTable where PropertyA='$propertyValue' and (id like '%$someValue%' or name like '%$someValue%' or description like '%$someValue%') order by id desc limit 10 offset $offsetValue如何在代码点火器中编写此查询? $propertyValue,$someValue,$offsetValue都是php变量.当然我需要...

与LIKE – SQL / PHP完全匹配【代码】

鉴于案文:"Hello, I'm from Hell", "Hello, I'm from Ell"和以下SQL子句:SELECT * FROM table WHERE text LIKE '%ell%'我得到上面的两个文本,但我不想得到这两个文本,因为我正在寻找文本“Ell”而非“地狱” 如果有人知道我的意思,你能帮助我吗? 提前致谢! 编辑: 更好的例子 就像你想要寻找“大”这个词一样,但它不能成为“更大”或“最大”之类的任何其他词的一部分解决方法:您可以使用MySQL Regex字边界匹配:SELECT * FROM...

使用键值对搜索php多维关联数组,如sql,如’%LIKE%’构造【代码】

我有这个PHP函数,可以很好地使用键值对搜索多维关联数组.我现在想扩展它以搜索一个数组,其中键值对具有类似于SQL的类似构造:name =’%john%’.function search($array, $key, $value) {$results = array();like_search_r($array, $key, $value, $results);return $results[0]; }function like_search_r($array, $key, $value, &$results) {if (!is_array($array)) {return;}if (isset($array[$key]) && $array[$key] == $value)...

LIKE - 相关标签