Php 在mysql中使用LIKE子句的优点是什么

Php 在mysql中使用LIKE子句的优点是什么,php,mysql,Php,Mysql,我想创建一个词典网站,我想知道哪一个网站更适合在我的词典中搜索: SELECT col FROM table WHERE col='anything' 或 哪一个速度和性能更高?(仅适用于完全匹配的单词) tnx如果列col是索引,那么使用第一个查询将使用索引 SELECT col FROM table WHERE col='anything' 在第二种情况下,即使列col被索引,优化器也将无法使用索引 因此,第一个查询的性能会更好 查看有关查询优化的更多信息 比较字符串时,equals或l

我想创建一个词典网站,我想知道哪一个网站更适合在我的词典中搜索:

SELECT col FROM table WHERE col='anything'

哪一个速度和性能更高?(仅适用于完全匹配的单词)
tnx

如果列
col
是索引,那么使用第一个查询将使用索引

SELECT col FROM table WHERE col='anything'
在第二种情况下,即使列
col
被索引,优化器也将无法使用索引

因此,第一个查询的性能会更好

查看有关查询优化的更多信息


比较字符串时,equals或like的执行效果大致相同

如果对计算的列进行索引,则Equals的性能会更好


LIKE将为您提供更多的功能:'%1!'、'.'等,允许您执行更广泛的查询。有关LIKE的更多信息,请参见,其中col='anything'和
从col='anything%'返回几乎相同答案的表格中选择col


从col LIKE'anything%'的表中选择col
这将返回以字符串anything结尾


从表中选择col,其中col类似“%anything”
这将返回以字符串anything开头

以精确匹配单词(因为您正在制作字典),您应该使用两个查询中的第一个:

 SELECT col FROM table WHERE col='anything'
另一个查询将匹配任何包含字符串“anything”的内容。这包括“foothing”(不是一个词)和“foothing bar”。这大概是你不想要的

所以要回答你的问题:

在mysql中使用LIKE子句的优点是什么

它的优点是能够匹配包含字符串的项,但是在您的用例(字典)中,它没有任何优点,并且当您只需要一个匹配项时,它实际上会返回多个匹配项

例如:假设您正在查找术语“any”

SELECT col FROM table WHERE col LIKE '%any%'
此查询将返回:“any”、“many”、“anyway”、“anywhere”等。

equals(=)运算符是一个“比较运算符,比较两个值是否相等”。换句话说,在SQL语句中,除非等式的两个值相等,否则它不会回复true。 前任。 从学生中选择*滚动=10

只有当滚动值等于10时,它才会返回值

其中,LIKE运算符“实现模式匹配比较”,尝试将“字符串值与包含通配符的模式字符串”匹配 前任。 从学生姓名中选择*,如“%vat”

它将返回名称列值以字符串“vat”结尾的所有行

从名为“Pra%”的学生中选择*; 它将返回名称列值以字符串“Pra”开头的所有行

从名为“%va%”的学生中选择*; 它将返回名称列值包含字符串“Pra”的所有行

注意:


这取决于你想你的搜索功能需要如何工作??第一个会更快,但它不会做同样的事情
%anything%
会找到任何包含
%anything%
的内容,而
anything
只会找到完全匹配的内容。我有一个英文单词列表,我想在其中搜索,你有什么建议吗?例如:像“%an%”会搜索任何包含。。所以它比简单的col='anywhere'花费了更多的时间,我只想要完全匹配的单词!!!你现在推荐什么?是的。如果这是一个常见的查询,你应该考虑对该列进行索引,就像Abhik Chakraborty saidI提出的一个问题:“当有代码< >联合所有< /代码>时查询排序结果,并且(我想)你给我写了一个答案。(我用另一个帐户问了这个问题,现在该帐户已被删除)。所以我找不到你的答案,你能找到吗?(我还记得你在解决方案中使用了
@变量
)tnxouch我真的找不到!因为我给出了很多这样的答案,涉及到mysql变量的使用。好吧,我在中又问了这个问题,如果你有空闲时间,请看一下,因为我只需要知道你已经给我的答案。
SELECT col FROM table WHERE col LIKE '%any%'
1) When you know the exact value to comapre with the coloumn you may use =(equal) operator for Exact/Accurate Result.
    When you dont know the Compared value but you are able to remember part of the string or value you may use "LIKE" operator.

2) Equal(=), Comaprision Operator can be used in Integer/Float (Numeric) along with varchar/varchar2/text (String) but the Like Operatpor can be used only for varchar/varchar2/Text (String).