MySQL选择查询-一个单元格到多行

MySQL选择查询-一个单元格到多行,mysql,select,Mysql,Select,在MySQL中,我有一个特定的单元格,其中包含如下数据 5,6,7,8,9 如果我需要一个接一个地搜索特定的2个数字,我会使用LIKE语句对这2个特定数字进行查询。例如,我需要检查一行中是否有数字6和7*我知道 这有点多余和笨拙。如果我将这些数字“转换”为多行,例如,每个数字都将成为它自己的行,列“数字””与“排序””列一起排序,这样我就知道了行的顺序 id numbers sort 55 8 4 56 6 2 57 5

在MySQL中,我有一个特定的单元格,其中包含如下数据

5,6,7,8,9
如果我需要一个接一个地搜索特定的2个数字,我会使用LIKE语句对这2个特定数字进行查询。例如,我需要检查一行中是否有数字6和7*我知道

这有点多余和笨拙。如果我将这些数字“转换”为多行,例如,每个数字都将成为它自己的行,列“数字””与“排序””列一起排序,这样我就知道了行的顺序

id    numbers    sort
55     8         4
56     6         2
57     5         1
58     7         3
59     9         5
...

这个案子的相同查询是什么?因此,我将得到与上面查询相同的结果。我需要使用排序列对查询进行排序,并检查数字6,7是否在排序中一个接一个地出现。

应该是这样的。(如果我正确理解你的问题)。如果排序列中的2个数字不按顺序排列,它将不返回任何内容

select * 
from table t1
join table t2 on t1.sort=t2.sort+1
where t1.numbers=6 and t2.numbers=7
如果您不知道应该先使用哪一个,可以这样使用:

select * 
from table t1
join table t2 on t1.sort=t2.sort+1 or t1.sort+1=t2.sort
where t1.numbers=6 and t2.numbers=7

应该是这样的。(如果我正确理解你的问题)。如果排序列中的2个数字不按顺序排列,它将不返回任何内容

select * 
from table t1
join table t2 on t1.sort=t2.sort+1
where t1.numbers=6 and t2.numbers=7
如果您不知道应该先使用哪一个,可以这样使用:

select * 
from table t1
join table t2 on t1.sort=t2.sort+1 or t1.sort+1=t2.sort
where t1.numbers=6 and t2.numbers=7

数字总是递增1还是可以有任何值?

数字总是递增1还是可以有任何值?

我建议采用以下表格结构

id col1 col2 rowid 1 1 2 1 2 2 3 1 3 1 4 2 id col1 col2 rowid 1 1 2 1 2 2 3 1 3 1 4 2
我建议采用下表结构

id col1 col2 rowid 1 1 2 1 2 2 3 1 3 1 4 2 id col1 col2 rowid 1 1 2 1 2 2 3 1 3 1 4 2
这没有什么问题,因为sizeof(数字)不是静态的。有时是3个数字(1,2,3),有时是10(1,2,3,4,5,6,7,8,9,10),依此类推。但是我只需要搜索一行中的2个,这没有什么问题,因为sizeof(数字)不是静态的。有时是3个数字(1,2,3),有时是10(1,2,3,4,5,6,7,8,9,10),依此类推。但是我只需要搜索一行中的2个。数字可以有任何值,例如“2456241”,如果我搜索“一行中的456241”,它应该会返回结果。我可以告诉你这些数字来自哪里,以及为什么你需要这样查询它们吗?也许我们可以给你更好的建议,知道背景成员可以有任何值,例如“2456241”,如果我搜索456241'在一行',它应该返回我的结果。我还可以问这些数字来自哪里,为什么你需要这样查询?也许我们可以在了解背景的情况下为您提供更好的建议。数字6和7在同一个表中。该表称为“SOMETABLE”,那么查询应该类似于
select*from SOMETABLE t1 join SOMETABLE t2 on t1.sort=t2.sort+1,其中t1.numbers=6和t2.numbers=7
?结果(甚至重复)正确吗?如果是这样的话,您可以只查询您需要的内容,并使用distinct执行类似选择distinct t1.numbers、t2.numbers或类似操作。重复记录必须根据某个条件删除,因为我不知道您在那里保留了什么,所以我无法知道该条件。数字6和7在同一个表中,因此该表称为“SOMETABLE”然后查询应该类似于
select*from SOMETABLE t1 join SOMETABLE t2 on t1.sort=t2.sort+1,其中t1.numbers=6和t2.numbers=7
?结果(甚至重复)正确吗?如果是这样的话,您可以只查询您需要的内容,并使用distinct执行类似选择distinct t1.numbers、t2.numbers或类似操作。必须根据某个条件删除重复记录,因为我不知道您保存了什么,所以我无法知道该条件。t2.stop_sequence-1。你应该把OR放在第二个选择中,我告诉你不能考虑t1和t2的顺序。正确,我已经删除了注释:Dt2.stop_sequence-1。你应该把OR放在第二个选择中,我告诉你不能考虑t1和t2的顺序