【问题标题】:SQL WHERE string LIKE fieldSQL WHERE 字符串 LIKE 字段
【发布时间】:2012-03-01 20:48:44
【问题描述】:

我有一个表跟踪链接结构如下:

id
domain_name
traffic_count
enabled
created_at

假设我有一条 domain_name 为“some-domain.com”的记录,然后假设我想找到具有该域的记录,除了我必须通过的是该域的子域。

我基本上想这样做:

SELECT * FROM links 'subdomain.some-domain.com' LIKE %domain_name%"

我该怎么做?

【问题讨论】:

  • 您使用的是哪个数据库引擎? MySQL?

标签: mysql sql sql-like


【解决方案1】:

更新(感谢 Chad Johnson):

SELECT * FROM links WHERE 'subdomain.some-domain.com' LIKE CONCAT('%', domain_name, '%')

【讨论】:

  • 不应该有where子句吗?
  • 非常接近!看起来这样有效:SELECT * FROM links WHERE 'subdomain.some-domain.com' LIKE CONCAT('%', domain_name, '%')
  • @ChadJohnson,是的,这就是我问哪个数据库的原因。在 MySQL 上,您必须使用 CONCAT。另外,你需要一个WHERE,比如SELECT * FROM links WHERE(等等)。
  • @ChadJohnson 请注意,此查询将无法使用索引,甚至更糟(正如 SQL Server 似乎所做的那样)在内存中构建临时索引,回答问题并丢弃索引.换句话说,不要在没有彻底测试性能的情况下在高流量网站上使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多