我有一个包含一个列的表,其中包含Driver || Helper || Garden等内容。我想将这个表导出到一个新系统,在那里我为每个用户Skill提供了不同的列(应该是这样)。
问题:如何在一个不错的SQL导出中获取此类信息。
SELECT user_id, driver, helper, garden FROM `ujc72_comprofiler` WHERE cb_erfahrungen LIKE "%Driver%"
为我提供具有特定技能的用户,但我想为一个用户导出多列用于导出。
答案 0 :(得分:1)
您需要拆分字符串。因此,它将Driver | Helper | Garden分开,将Driver,Helper和Garder列分开。
mysql中没有此功能。你必须自己创建它。 请检查此链接: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'
答案 1 :(得分:0)
只需使用此查询:select column_name, column_name, column_name from table_name where column_name like '%driver%'
。我认为这就是你要找的东西。
答案 2 :(得分:0)
您在SQL中发现这很困难,因为必须在准备查询时修复列的选择列表。 SQL没有任何功能允许自动扩展结果集中的列数以适应数据中找到的模式。
所以不要试图用SQL做到这一点。编写脚本以运行简单的SQL查询,然后在脚本代码中拆分字符串。
实际上,任何语言都可以轻松地将字符串拆分为数组。
使用正确的工具完成工作。