如何为mysql中的like运算符提供别名

发布于 2024-11-18 08:04:38 字数 153 浏览 2 评论 0原文

我想从表中选择像“Bo%”这样的名称或像“Ni%”这样的名称,并且我想为所有像 Bo 这样的名称指定一个特定的名称,并为像 Ni 这样的所有名称指定一个特定的名称。 但如果我给出一个别名,那么它就不起作用。

男性的名字如“Bo%”,女性的名字如“Ni%”。 那么我该怎么做呢?

I want to select the name like 'Bo%' or name like 'Ni%' from a table and I want to give a specific name to all that name like Bo and a specific name to all that name like Ni.
But if I give an alias name as this it not works.

name like 'Bo%' as Male or name like'Ni%' as female.
So how can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独﹏钓一江月 2024-11-25 08:04:38

SQL 允许您为列或表添加别名。您不能在每个值的基础上替换列名称 - 该名称需要一致,以便您可以在以后的操作中引用它。

您需要为您想要查看的每个选项指定一列:

SELECT CASE WHEN t.col LIKE 'Bo%' THEN t.col ELSE NULL END AS male,
       CASE WHEN t.col LIKE 'Ni%' THEN t.col ELSE NULL END AS female
  FROM YOUR_TABLE t

...但这意味着男性或女性列可能为空 - 如果 LIKE 都不匹配,则两者都将为空:

name    male  female
-------------------
Bob     Bob   NULL
Nirmal  NULL  Nirmal
Xander  NULL  NULL

SQL allows you to alias columns, or tables. You can't alternate a column name on a per value basis -- the name needs to be consistent so you can reference it for later operations.

You need to dedicate a column to each option you want to see:

SELECT CASE WHEN t.col LIKE 'Bo%' THEN t.col ELSE NULL END AS male,
       CASE WHEN t.col LIKE 'Ni%' THEN t.col ELSE NULL END AS female
  FROM YOUR_TABLE t

...but that means the male or female column could be null -- both will be if neither LIKE matches:

name    male  female
-------------------
Bob     Bob   NULL
Nirmal  NULL  Nirmal
Xander  NULL  NULL
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文