【问题标题】:Join MySQL tables, select rows with column starting with string and use multiplication to filter加入 MySQL 表,选择列以字符串开头的行并使用乘法过滤
【发布时间】:2018-02-21 23:33:39
【问题描述】:

我有两个数据库,我将像这样加入它们:

select *
from business,activity 
where business.primary_activity_id = activity.id; 

但是,我想从这个联合查询中选择标识符(从活动表中导入)以“01”开头的行。

我正在尝试这个查询:

select * 
from business,activity
where business.primary_activity_id = activity.id
    and identifier like "01.";

好吧,它没有用。空查询。

手动检查表,其中有标识符以“01”开头的行。 有人可以启发我的旅程吗?

【问题讨论】:

  • 请尝试添加 %。标识符如'01.%'
  • 感谢@anonyXmous,它成功了
  • 很高兴为您提供帮助!!!

标签: mysql sql join sql-like


【解决方案1】:

虽然@anonyXmous 作为评论回答了,但我还想补充一些内容。

首先,LIKE 的通配符是%,以匹配任意长度的子字符串,包括零长度。单个字符的通配符是下划线 ('_')。

其次,您不应该在from 子句中使用逗号。学习使用正确、明确的JOIN 语法。 永远不要在FROM 子句中使用逗号。

第三,表别名使查询更易于编写和阅读。然后使用它们来限定所有列名。

第四,对字符串常量使用单引号。所以:

select b.*, a.*
from business b join
     activity a
     on b.primary_activity_id = a.id
where a.identifier like '01.%';

【讨论】:

    猜你喜欢
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    相关资源
    最近更新 更多