我可以在Mysql查询中放入一个数组吗?

时间:2011-11-22 15:44:00

标签: php mysql arrays fetch

我有一个数组:

$arrayA = array(1, 2, 3, 4, 5);

我可以将数组放在查询中放一个常数吗?像这样:

SELECT id as 'ID',
       name as 'NAME',
       '1234' as 'Number'
FROM student 

以上查询将生成以下内容:

ID    NAME    Number
1     Lily    1234
2     Sherry  1234
3     Bob     1234
4     Tom     1234
5     Lucy    1234

我想做这样的事情:

SELECT id as 'ID',
       name as 'NAME',
       $arrayA as 'Number'
FROM student 

所以,如果我有5名学生,当我做mysql_fetch_array时,它会在Number列下自动生成1,2,3,4,5。

ID    NAME    Number
1     Lily    1
2     Sherry  2
3     Bob     3
4     Tom     4
5     Lucy    5

2 个答案:

答案 0 :(得分:1)

您可以使用php来实现此目的,例如

$students = array();
$arr = range(1,5);
$idx = 0;
while ( $row = $mysql_result->fetch_assoc())
{
  // return array(1,2,3,4,5)
  // $row['Number'] = $arr;

  // return matched
  // $row['Number'] = $arr[$idx];

  // this is what you can try
  $row['Number'] = ++$idx;
  $students[] = $row; 
}

注意:如果您打算使用oili标记进行显示,请执行以下操作 你可以选择退出

答案 1 :(得分:0)

不,你不能。此外,你不应该这样做。它违反了第一个正常形式。如果存在固定数量的值,则每个值都应具有自己的列。如果没有固定数字,您应该有一个中间表来处理多对多关系。

关系数据库背后的整个想法是每列每行存储一项数据。如果您需要存储多个数据项,则它应该是多列或多行。

请参阅我对此问题的回答:storing multiple data in one mysql column and retrieval of data individually