如何搜索字符串的时间长于存储在数据库中的字符串 - SQL Server,PHP

时间:2016-08-19 15:08:33

标签: php sql-server string

我有一个问题,关于搜索字符串的时间长于存储在数据库中的字符串。

例如:存储在DB中的字符串是“somestring”。我需要用改变的字符串来加工它,例如“somestringXY”。

我有一个存储模型的数据库,但在我需要解析的文件中,字符串经常被修改。 我能做的是:

  1. 我可以SELECT * 'string' from Table然后通过foreach和substr / preg_match搜索针。
  2. 我也可以SELECT * 'string' FROM Table进行数组,然后通过in_array函数进行搜索。
  3. 我也可以制作一个循环,剪切最后一个字母,在DB上选择并找到匹配。如果没有匹配,请再次循环。
  4. 假设不应该有双重匹配,所以在DB中不会有字符串(somestringXY,somestringX,somestring)。

    也许还有其他方法?当然,在SQL中没有用,因为搜索的字符串更长,然后存储在DB中。

1 个答案:

答案 0 :(得分:0)

我不知道是否存在特定的MySQL方式,但我会选择这条路线:

$substrarray = array("'somestri'","'somestrin'", "'somestring'","'somestringX'","'somestringXY'");

$substrings = implode(",",$substrarray);

$query = "SELECT * FROM table WHERE string IN (".$substrings.")";

问题当然是这可能会给你带来不必要的结果,这取决于你正在寻找什么以及这些字符串与彼此的相似程度。但专业人士认为,每次删除一封信后,只检查一次,而不是多次。