【问题标题】:Filtering DB result based on column value [closed]根据列值过滤数据库结果[关闭]
【发布时间】:2014-06-11 23:26:41
【问题描述】:

我想根据他们已经添加的属性在我的 SQL 数据库中选择用户。该属性是以任何网站域名开头的链接。

那么我应该在 PHP 中使用什么命令来根据所选域名过滤行?当然不考虑链接的其余部分,只考虑域名。

【问题讨论】:

  • SQL 查询中的 WHERE 子句?
  • WHERE 在列中查找整个值。我需要部分查找值,即我需要通过仅查找“www.domainname123.com”@Mark 来过滤链接“www.domainname123.com/123456”
  • WHERE 不限于整列;通过使用 MySQL 函数(或 LIKE),您可以在一个列上进行部分搜索,甚至可以通过 CONCAT() 在多个列上进行搜索。在这里,您可以使用 WHERE 和 regex 来隔离域,或使用 LIKE

标签: php sql filter


【解决方案1】:

您可以将 PHP 用作“一刀切的工具”,但 它不是适合这项工作的工具。您的数据库引擎将更有效地处理此类任务。此外,它还可以避免传输不需要的未经过滤的数据。

根据您的描述,查询应该是

select user_id, username from users where users.url like '%domain.com%'

这只会给你相关的行。然后你可以使用 PHP parse_url 函数只抓取主机并丢弃其余的。

【讨论】:

    【解决方案2】:

    您可以在对数据库的查询中使用 WHERE 子句:

        SELECT id, username, other_field FROM your_table WHERE domain LIKE '%your_domain_variable%'
    

    这将返回表中域字段与您提供的域变量中提供的任何域相同的用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多