如何设计存储在myadmin数据库中的字符串,并按任意顺序从该字符串中搜索单词


how to devide a string stored in myadmin database and search a word from that string in any sequence?

在我的表中,我有一个点名称(地名(列,其中有一个字符串
比如城市银行大厦。

我有我的用户界面,在其中我有一个搜索框,用户可以输入任何关键字进行搜索。

现在我想从表列spotname中搜索该关键字,spotname是一个字符串。

所以基本上我想从存储在数据库中的字符串中提取一个子字符串。

例如

城市银行大楼-这是数据库字符串
银行-我的搜索关键字

字符串中包含单词"Bank"的任何字符串组合都应显示在列表中。

这是我的代码,

switch($search_by){
    case "spotname":
        $sql_where_clause = "sname LIKE ' %" . $search_keyword."%'";
        break;
}

有人知道怎么做吗?

只有当用户输入单个单词或确切短语时,才可以在查询中使用LIKE。更好的方法是使用全文索引搜索:

CREATE TABLE places (
   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
   name VARCHAR(200),
   FULLTEXT (name)
);

那么您的查询将如下所示:

SELECT * FROM places 
WHERE MATCH (name) AGAINST ('SEARCH PHRASE');

在此处阅读有关全文搜索的更多信息:http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

<?php
    $query="Bank"; //or whatever you are looking for
    $mysql=mysql_connect();
    $result=mysql_query("SELECT `ColumnName` FROM `TableName` WHERE `ColumnName` LIKE '%$query%'", $mysql);
    mysql_close($mysql);
?>

mysql查询将变成

SELECT `ColumnName` FROM `TableName` WHERE `ColumnName` LIKE '%Bank%'

它将选择任何包含Bank的内容。因此,它将匹配以下所有

City Bank Building
Bank Building
Building Bank
Bank
BankBank
...and so on