如何在mysql中选择匹配的行?

时间:2016-11-19 06:33:14

标签: mysql mysqli

我有如下表格

DataID = (786,333,500,777)

并且还有一些+--------+---------+------------------------------------+ | Id | Name | DataID | +--------+---------+------------------------------------+ | 1 | xyz | 111,222,333,444 | | 2 | xxz | 555,666,777 | | 5 | xyy | 600,500,400,300,555 | | 8 | xzz | 800,786 | | 1124 | bbb | 889,998,777 | +--------+---------+------------------------------------+ 列表。所以现在我想用DataID列检查这个列表。例如,现在第8行在DataID列中有786,第1行有333,第5行有500,第1124行和第11行。 2有777.现在我希望将此记录作为输出。就像下面给出的一样。请有人帮我,对不起,如果我的英语不好,如果我的问题非常基本。但请有人帮忙。期待如下输出

player1 = (Player)getActivity().getIntent().getSerializableExtra("Player1");

由于

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT name FROM table WHERE FIND_IN_SET('777', DataID)

那应该返回xxz和bbb

同意上面的评论者,这不是处理数据的好方法。

答案 1 :(得分:1)

通常情况下不会添加其他答案,但您在类似问题上提出了不同的转折。

如果您愿意,可以这样做:

SELECT name FROM table WHERE CONCAT(',', DataID, ',') REGEXP ',(222|777|400),'

你会得到xyz,xxz,xyy,bbb

我怀疑有人会认为这是最优的,但它会做你所要求的。