2016-01-03 42 views
0

我有两个表问题和question_paper。在question_paper我有一个名为question_ids .in question_ids-(文本类型)的列,我存储问题表的ID像2,5,23,45,6,9等。现在的问题是,当我试图取数据使用如何更改mysql查询中的数据类型?

select * from question where id IN (select question_ids from question where id=1)它将question_ids作为字符串类型传递,因此它只返回第一个匹配的id的值。因此,我需要将此查询结果更改为数字类型,这在mysql中是可能的,还是有任何函数使用我可以更改临时类型。先谢谢了。

+1

您是否尝试过CAST()或CONVERT()?只是谷歌“mysql铸” – yahermann

+1

使用CAST()函数 –

+0

试试这个[SO帖子](http://stackoverflow.com/questions/17942508/sql-split-values-to-multiple-rows)首先拆分你的question_id字符串到行中,然后将其用于您的子查询。我认为这应该工作。 – vmachan

回答

-1

MySQL CAST()函数将任何类型的值转换为具有指定类型的值。 http://www.mysqltutorial.org/mysql-cast/

+0

我试过但没有工作我很困惑与子查询如何使用CAST()与子查询。这是正确的方式“select * from问题其中ID IN(CAST((从问题where select id = 1 select select question_ids)AS UNSIGNED))” –

+0

是否有任何其他方式,像我可以从子查询的结果中删除引号。 –

+1

在你的question_id中有逗号,那么如何在UNSIGNED中投射? –