MySQL使用LIKE查询SELECT行并创建包含匹配字符串的新列

时间:2016-02-03 17:50:06

标签: mysql select compare match sql-like

我需要一些关于MySQL查询的帮助我现在正在努力。

所以,我试图从一个匹配特定字符串SELECT的表中创建app行的MySQL查询。 我的桌子是这样的:

+-----+--------------+
| id  | name         |
+-----+--------------+
|   1 | Green Apple  |
|   2 | Big Orange   |
|   3 | application  |
+-----+--------------+

我可以找到包含app字符串SELECTLIKE的所有行。

但是,我还想创建一个新列,其中包含name列中与app匹配的字符串,并保持数据库区分大小写的格式,即使用app作为匹配短语新列将根据App中的字符串格式包含appname个。

到目前为止,我的查询是这样的:

SELECT *, 'what_to_put?' as new_column FROM table WHERE name LIKE '%".$app."%'

所需的输出如下:

+-----+--------------+-------------+
| id  | name         | new_column  |
+-----+--------------+-------------+
|   1 | Green Apple  |     App     |
|   2 | application  |     app     |
+-----+--------------+-------------+

知道如何实现这个目标吗?

1 个答案:

答案 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        |
+----+-------------+------------+

Sql Fiddle Here