Mysql 基于不同的输入得到相同的结果

Mysql 基于不同的输入得到相同的结果,mysql,database,Mysql,Database,让我重新提出我的问题。我想我前面的问题可能会让人困惑。 很抱歉给你带来了困惑 我有一个名为vuln_info的表,我正在尝试根据vuln_名称进行查询 如果我这样问 SELECT vuln_id FROM vuln_info where vuln_name="Self-Signed SSL/TLS Certificate" 我喜欢划船 vuln_id vuln_name 100 Self-Signed SSL/TLS Certificate 它返回vuln_id(100),因为v

让我重新提出我的问题。我想我前面的问题可能会让人困惑。 很抱歉给你带来了困惑

我有一个名为vuln_info的表,我正在尝试根据vuln_名称进行查询

如果我这样问

SELECT vuln_id FROM vuln_info where vuln_name="Self-Signed SSL/TLS Certificate"
我喜欢划船

vuln_id vuln_name 

 100    Self-Signed SSL/TLS Certificate
它返回vuln_id(100),因为vuln_名称与输入完全匹配

但是,输入可以是可变的。可能是

“存在自签名SSL/TLS证书”或“包含自签名SSL/TLS证书的机器自签名SSL/TLS证书”

即使输入有额外的字符串,编写查询以获取vuln_id(100)的方法是什么

请检查此链接


谢谢。

如果您想使用类似like但反向的行为搜索它,您也可以尝试反向搜索:

SELECT vuln_id 
FROM vuln_info 
WHERE "present Self-Signed SSL/TLS Certificate" like CONCAT('%', vuln_name, '%');
你可以用你的输入改变你喜欢的左边的文本

请在此查看它的工作情况

尝试以下操作:

SELECT vuln_id 
FROM   vuln_info 
WHERE  vuln_name like "%Self-Signed SSL/TLS Certificate%"

对于字符串搜索,我们使用
like
运算符

SELECT vuln_id  FROM vuln_info 
WHERE vuln_name LIKE '%Self-Signed SSL/TLS Certificate%';

您必须根据需要使用%op。

如果要匹配字符串中的随机词,请查看MySQL的全文索引。我认为它可以做你想做的事情。我认为这就是像
这样的
操作符,因为所有输入都包含“自签名SSL/TLS证书”。mysql中是否有任何匹配或包含函数?我试图将vuln_名称(如“%$input%”)放在哪里,如果input中有多余的字,则不会返回任何内容。
vuln_名称(如“%Self-Signed SSL/TLS Certificate%”)应该放在哪里