我需要一些关于MySQL查询的帮助我现在正在努力。
所以,我试图从一个匹配特定字符串SELECT
的表中创建app
行的MySQL查询。
我的桌子是这样的:
+-----+--------------+
| id | name |
+-----+--------------+
| 1 | Green Apple |
| 2 | Big Orange |
| 3 | application |
+-----+--------------+
我可以找到包含app
字符串SELECT
和LIKE
的所有行。
但是,我还想创建一个新列,其中包含name
列中与app
匹配的字符串,并保持数据库区分大小写的格式,即使用app
作为匹配短语新列将根据App
中的字符串格式包含app
和name
个。
到目前为止,我的查询是这样的:
SELECT *, 'what_to_put?' as new_column FROM table WHERE name LIKE '%".$app."%'
所需的输出如下:
+-----+--------------+-------------+
| id | name | new_column |
+-----+--------------+-------------+
| 1 | Green Apple | App |
| 2 | application | app |
+-----+--------------+-------------+
知道如何实现这个目标吗?
答案 0 :(得分:2)
如果没有单独的正则表达式库,您需要使用内置的string functions来查找匹配项的location,然后提取匹配的sub-string:< / p>
SELECT
id,
name,
substring(name, locate('app', name), length('app')) as new_column
FROM yourTable
WHERE name LIKE '%app%'
结果如下:
+----+-------------+------------+
| id | name | new_column |
+----+-------------+------------+
| 1 | Green Apple | App |
| 3 | application | app |
+----+-------------+------------+