SQL 查询以检索完全匹配的记录,带或不带 LIKE

SQL query to retrieve exactly matching record with or without LIKE

休息 API URL,我收到一个如下所示的用户 ID:58988e75c918f5bd5804afd6

数据库将用户名存储在名称字段中,格式如下: 58988e75c918f5bd5804afd6 John.

我当前 SQL 获取此记录的查询是:

$sql = 'SELECT * FROM users WHERE name LIKE :term';
$result = db_query($sql, array(':term' => db_like($userid)));
$existingUser = $result->fetchObject();

对于当前的 SQL 查询,即使我提供了部分用户 ID (58988e75c918f5bd5804),它似乎也获取了 John 行,这不是我希望发生的事情。如何修复查询,使其与包含 John 的用户 ID 完全匹配?

预期结果:用户id不完全匹配,没有检索到记录。

更新:我获取记录,然后进行子字符串替换以更新 Drupal 中的记录 table。

注意:随意修改 sql 查询以获得预期结果,无需使用 LIKE

在您喜欢的字词中使用 space: Include space in mysql like search

$sql = 'SELECT * FROM users WHERE name LIKE ":term "';
$result = db_query($sql, array(':term' => db_like($userid)));
$existingUser = $result->fetchObject();

最好用 PHP 验证字符串大小,然后执行 mysql 之类的。由于您使用相同的加密方式,因此您将获得相同数量的加密字符。