【发布时间】: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_id和name创建一个表past_usernames。然后,您可以在该表中搜索确切的用户名和 user_id。