现在,有一个搜索栏可以在每列中搜索您输入的字词,例如
+--------+------------+
| name | location |
+--------+------------+
| Miley | House |
+--------+------------+
| Bob | Hotel |
+--------+------------+
所以当你搜索Miley时,你会得到Miley | House的表格行,如果你搜索House,你也可以得到Miley | House。但是,如果我输入" Miley House"在搜索栏中它并没有输出任何东西。
代码:
<input type="text" id="search" name="search" value="" >
SQL
WHERE CONCAT(id, name, department, object, description, location, room, reg_date, until_date, reason, email) LIKE '%".$search."%'
如果能帮助我:)会很好,如何使用多个关键字进行搜索。
答案 0 :(得分:0)
将您的条件更改为
WHERE CONCAT_WS(' ', id, name, department, object, description, location, room, reg_date, until_date, reason, email) LIKE '%".$search."%'
并检查
在你的&#34; Miley House&#34;不会得到,因为它之间有空间。并且查询将在您的concat条件中搜索完全匹配,这将永远不会满足。
因此,concat_ws(&#34;&#34;,id,name,department,object,description,location,room,reg_date,until_date,reason,email)将在每个字段值之前追加空格。所以完全匹配条件将满足要求。
答案 1 :(得分:0)
试试这个
SELECT CONCAT(`id`, `name`, `department`, `object`, `description`, `location`, `room`, `reg_date`, `until_date`, `reason`, `email`) as all_str FROM `tbl_name`
WHERE `all_str` LIKE '%".$search."%'
答案 2 :(得分:0)
SELECT CONCAT(`id`, `name`, `department`, `object`, `description`, `location`, `room`, `reg_date`, `until_date`, `reason`, `email`) as data FROM `tablename`
WHERE name LIKE '%fieldname%' OR location LIKE '%fieldname%'
答案 3 :(得分:-1)
嘿,如果你想更好地搜索MySql数据库中的数据,那么你可以使用全文搜索的概念,你必须根据全文索引概念改变表的全文搜索结构。
**** ****演示
CREATE TABLE文章( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), 主体, FULLTEXT(标题,正文) //全文索引 );
INSERT INTO文章(标题,正文)价值观 ('MySQL Tutorial','DBMS代表DataBase ......'), ('如何使用MySQL','经历了......'), ('优化MySQL','在本教程中我们将展示......'), ('1001 MySQL Tricks','1。永远不要以root身份运行mysqld.2。......'), ('MySQL vs. YourSQL','在以下数据库比较......'), ('MySQL Security','配置正确,MySQL ......');
如果您想获得最佳结果,请点击以下查询。 SELECT title,body,MATCH(title,body)AGAINST('DBMS代表数据库'IN自然语言模式)all_data FROM articles by all_data desc limit 1;
我认为这对你有用..........