我必须列出一个表的所有细节,其中colums event_id和horse_id以“1”结尾。我通过以下方式实现了这一目标:
SELECT * FROM event
WHERE event_id AND show_id LIKE '%1'
但问题是指定使用字符串函数。我能找到的唯一一个在这种情况下有用的字符串是RIGHT()。我不能按照自己的意愿去表演。
SELECT * FROM event
WHERE RIGHT('1',1)
显示以一个结尾的所有列。但是我需要将搜索限制为event_id和horse_id。
SELECT * FROM event
WHERE event_id AND show_id RIGHT('1',1)
不起作用。 “正确”字符串无效。
任何帮助表示感谢。
答案 0 :(得分:4)
你几乎那就是为什么我对回答没有疑虑。如果你只是举手回答,我会更加沉默寡言,但是,既然你完成了大部分工作(找到了right()
函数),我们就去了。
首先,WHERE event_id AND show_id LIKE '%1'
几乎肯定没有按照你的想法行事。复杂表达式的每个组成部分都必须独立,因此您需要查看:
WHERE event_id LIKE '%1' AND show_id LIKE '%1'
但是,仍然没有使用字符串函数。他们得到的是你应该将一个字符串函数应用于列并进行比较,例如:
... where right(event_id, 1) = '1' ...
函数right(event_id, 1)
将返回event_id
列的最右侧字符,您只需将其与文字'1'
进行比较即可。同样使用horse_id
(而不是您在示例中所做的show_id
)也能满足您的需求。
现在停止阅读并先试试!
并且,如果你仍然在阅读了上面的内容并且离开去测试之后仍然不明白,那么这就是你想要的东西。如果没有首先尝试使用上述信息,请不要使用它。
... where right(event_id, 1) = '1' and right(horse_id, 1) = '1'
答案 1 :(得分:2)
MySQL帮助救援!
RIGHT(str, n)
返回str中最右边的n个字符。这意味着您需要针对此返回值进行测试。
SELECT * FROM event WHERE RIGHT(event_id, 1) = '1' AND RIGHT(horse_id, 1) = '1';
答案 2 :(得分:1)
尝试:
SELECT * FROM event
WHERE RIGHT(event_id, 1) = '1' AND
RIGHT(horse_id, 1) = '1';
答案 3 :(得分:1)
尝试使用:
and substring(horse_id, -1) = '1'