使用通配符选择 MySQL 中最具体的行
我有一个包含三列的表 ABR
:两个查找值 A
和 B
以及一个结果 Result
。我希望在给定 A
和 B
的情况下返回结果,
但是,对于 A
的某些值,列 B
可以成为通配符。在这种情况下,我想要最具体的行。
我似乎无法弄清楚 MySQL 语句 - 我找到了一个,但它有 7 行长,有 5 个 =
和两个 IF
的,一定有更好的办法。
A B Result
1 * First
2 * Second
2 1 Third
2 2 Fourth
3 * Fifth
Example wanted results:
A=1, B=5 -> First
A=1, B=0 -> First
A=2, B=2 -> Fourth
A=2, B=4 -> Second
A=3, B=7 -> Fifth
请注意,列值稍后可能会更改:我们可以为 A 和 B 添加额外的行,或删除值。 SQL 中的硬编码内容是不可接受的。
I have a table ABR
with three columns: two lookup values, A
and B
and a result Result
. I want the result to be returned given A
and B
But, for some values of A
, column B
can be a wildcard. In that case I want the most specific row.
I can't seem to figure out the MySQL statement though - I found one, but it was 7 lines long and had 5 =
and two IF
's, there must be a better way.
A B Result
1 * First
2 * Second
2 1 Third
2 2 Fourth
3 * Fifth
Example wanted results:
A=1, B=5 -> First
A=1, B=0 -> First
A=2, B=2 -> Fourth
A=2, B=4 -> Second
A=3, B=7 -> Fifth
Do notice that the column values can change later: we can add extra rows for A and B, or remove values. Hardcoding stuff in the SQL is not acceptable.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)