我找不到正确的答案,对一个非常简单的任务更加困惑。
我有什么话:
sun
fun
dark
light
clunch
cruca
suda
muda
我想获得结果:
un
unch
uca
uda
我现在在哪里:
sun
fun
null
null
clunch
cruca
suda
muda
我非常简单的初学者代码:
SELECT * FROM table WHERE title REGEXP '[u]{1}[a-tv-z]{1,3}$';
SELECT SUBSTRING_INDEX(??????,'a',-1);
我知道我只能将一个值传递给该函数。我已经尝试过创建一个临时表但我真的被困了。
CREATE TEMPORARY TABLE t1 (SELECT * FROM table WHERE title REGEXP '[u]{1}[a-tv-z]{1,3}$')
请你给我一个小提示,告诉我如何连续执行几个命令并将结果从一个步骤传递到另一个步骤?此外,我想拥有单词的独特结尾并消除重复。
答案 0 :(得分:1)
你想在这里做两件事:
要自己实现第一部分,请使用WHERE
子句:
SELECT title FROM table WHERE title LIKE '%un%'
那会给你
sun
fun
clunch
但那是SELECT
整个title
- 你只想让部分以'un'开头。所以你现在改变SELECT
。您需要从“un”的位置开始的子字符串。像这样:
SELECT SUBSTR(title, LOCATE(title, "un")) FROM table WHERE title LIKE '%un%'
现在你会看到
un
un
unch
答案 1 :(得分:0)
使用LIKE作为过滤器尝试此查询:
SELECT SUBSTR(title, LOCATE(title, "un")) FROM table WHERE title LIKE '%un%';
如果你必须使用SUBSTR_INDEX,试试这个(假设子串“un”只出现一次)
SELECT SUBSTR(title, SUBSTR_INDEX(title, "un", -1)) FROM table WHERE title LIKE '%un%';
答案 2 :(得分:0)
这就是诀窍!感谢您的指导!
SELECT DISTINCT(
SUBSTR(title, - 5 + LOCATE('u', SUBSTR(title, - 4))))
FROM table WHERE title REGEXP '[u]{1}[a-tv-z]{1,3}$'