【问题标题】:PHP Check if mysql database contains string in stringPHP检查mysql数据库是否在字符串中包含字符串
【发布时间】:2017-03-18 16:15:05
【问题描述】:

所以我有一个数据库列,其中包含过去的用户名。

如果有信息,这就是该行的样子。

bill, joe, ryan

我正在尝试做的是检查单行并检查其中是否包含 joe。我有一个关于如何做到这一点的可能理论,但我担心说某人过去的用户名是这样的:

billjoe

恐怕它会认为它存在于数据库中,因为其中有账单,如果它不完全是账单,我希望它忽略它。

令人困惑的是,它可能在 1 个字符串中有 3 个名称,用逗号分隔。

我的理论是这样的:

$stmt = $db->prepare("SELECT * FROM users WHERE pastusernames LIKE :pastusernames");
$stmt->execute(array(':pastusernames' => "%bill%"));

但这甚至可能是完全错误的。那么有没有办法正确地做到这一点?

【问题讨论】:

  • 如果您规范化数据库,这可能会更容易。使用列 user_idname 创建一个表 past_usernames。然后,您可以在该表中搜索确切的用户名和 user_id。

标签: php mysql pdo sql-like


【解决方案1】:

不确定如何用 PHP 编写。但是 sql 应该是这样的:

SELECT * 
FROM users 
WHERE ', ' + pastusernames + ',' LIKE '%, bill,%'

添加 , 确保匹配整个事物,而不仅仅是一部分

【讨论】:

  • 那些+不应该是点(连接)吗?我怀疑这里正在做“数学”。或者,这是我不知道的一些大师 SQL 吗? 哈哈
  • @Fred-ii- 我说的是写 sql 代码。不知道如何翻译成 PHP
【解决方案2】:

我不确定,但下面的查询可能对你有用

$stmt = $db->prepare("SELECT * FROM users WHERE pastusernames LIKE :pastusernames");
$stmt->execute(array(':pastusernames' => "bill"));

【讨论】:

    猜你喜欢
    • 2012-06-23
    • 2014-03-03
    • 2014-04-22
    • 2011-11-09
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    相关资源
    最近更新 更多