Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我们可以使用或关键字进行sql连接吗?_Mysql_Sql_Mysql Workbench - Fatal编程技术网

Mysql 我们可以使用或关键字进行sql连接吗?

Mysql 我们可以使用或关键字进行sql连接吗?,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我的桌子如下所示;(我从excel中填充了它) 我想从另一个表中提取一些数据,以便使用sql联接。因为我的列包含逗号分隔的值,所以我尝试将join与Or一起使用,但没有成功。这样做对吗? 我寻找这个逗号分隔列的快速解决方案 例如: 你有一个可怕的数据模型。您可能无法大大加快查询速度。但您至少可以简化代码 SELECT * FROM test.types t JOIN test.matric ma ON FIND_IN_SET(t.category, REPLACE(ma.`

我的桌子如下所示;(我从excel中填充了它)

我想从另一个表中提取一些数据,以便使用sql联接。因为我的列包含逗号分隔的值,所以我尝试将join与Or一起使用,但没有成功。这样做对吗? 我寻找这个逗号分隔列的快速解决方案

例如:


你有一个可怕的数据模型。您可能无法大大加快查询速度。但您至少可以简化代码

SELECT *
FROM test.types t JOIN
     test.matric ma
     ON FIND_IN_SET(t.category, REPLACE(ma.`Function Code AA`, ', ', ',')) > 0 OR
        t.type = ma.`function Code NN` 
WHERE ma.`Priority` = 'T1';
但是,您应该修复您的数据模型。以下是一些问题:

  • 数据库的字符串处理能力非常差
  • 应使用正确的类型存储值
  • 外键应正确声明
  • 这种结构防止数据库使用索引、分区和最佳优化方法

SQL有一种很好的存储列表的方法。它不是字符串。它被称为表格。

您应该认真地远离这种表格设计。即使是
FIND_IN_SET
在这里也不一定有效,因为
3
不等于
03
,当两者作为文本进行比较时。@TimBiegeleisen这不是表格设计。我在那里导入一个excel文件。我从客户端获取的Excel文件。所以我想从现有表中提取数据,这就是为什么尝试使用Excel填充的表进行连接。您能用Find_uu;In set给出答案吗?我修正了03/3,在MySQL内部连接中可以使用
关键字。在您的代码中,在
内部连接测试中
matric
之后缺少一个反勾号。`matric
SELECT *
FROM test.types t JOIN
     test.matric ma
     ON FIND_IN_SET(t.category, REPLACE(ma.`Function Code AA`, ', ', ',')) > 0 OR
        t.type = ma.`function Code NN` 
WHERE ma.`Priority` = 'T1';