SQL 一列多LIKE查询

SQL Query with one column and multiple LIKEs

我得到了一个 table,其中有一列包含 Driver||Helper||Garden 等内容。我想将此 table 导出到一个新系统,其中每个用户技能都有不同的列(应该是这样)。

问题:我怎样才能在漂亮的 SQL 导出中获得此类信息。

SELECT user_id, driver, helper, garden FROM `ujc72_comprofiler` WHERE cb_erfahrungen LIKE "%Driver%"

为我提供了具有某种技能的用户,但我想要一个用户的多个列用于我的导出。

只需使用此查询:select column_name, column_name, column_name from table_name where column_name like '%driver%'。我想这就是你要找的。

您需要拆分字符串。所以,它会将Driver|Helper|Garden划分为单独的Driver、Helper和Garder列。

mysql 中没有此功能。你必须自己创建它。 检查此 link:https://blog.fedecarg.com/2009/02/22/mysql-split-string-function/


此外,您可以使用 SUBSTRING_INDEX 函数:

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'

您在 SQL 中发现这很困难,因为 select 列列表必须在您准备查询时固定。 SQL 没有允许自动扩展结果集中的列数以适应数据中发现的模式的功能。

所以不要尝试用 SQL 这样做。编写脚本 运行 一个简单的 SQL 查询,然后在脚本代码中拆分字符串。

几乎任何语言都有将字符串轻松拆分为数组的功能。

使用正确的工具完成工作。