MYSQL:从包含多个数据的一列中检索所有行

时间:2013-02-25 20:38:48

标签: php mysql database

我在网上看了大约两天,我不确定如何向Google询问这种情况。我试图从包含“Helmet”一词的单个列中提取所有行。我得到的只有2排。实际上大约有10行,但它包含像'Legs,Helmet'这样的单词。只有'Helmet'这个词的行正确填充。我正在使用的代码。

  id | rune_slot
  ---------------------------------
  0  | Shoulders
  ---------------------------------
  1  | Chest
  ---------------------------------
  2  | Main Hand, Off Hand, Ranged
  ---------------------------------
  3  | Helmet
  ---------------------------------
  4  | Legs, Helmet
  ---------------------------------
  5  | Helmet
  ---------------------------------
  6  | Legs, Helmet
  ---------------------------------

如你所见,这是我的桌子。就像我说的那样,我得到第3行和第4行,但我似乎也无法获得第4行和第6行。

$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
      die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT * FROM runes WHERE rune_slot LIKE "Helmet"' ;

mysql_select_db('runelist');
$retval = mysql_query( $sql, $conn );
if(!$retval )
{
      die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
      echo "Rune Name : {$row['rune_name']} "." Craft Level :  {$row['craft_level']} "."   Rune Slot : {$row['rune_slot']} ".
      "<br />";
} 
echo "Fetched data successfully\n";
mysql_close($conn);

这是我从http://www.tutorialspoint.com/php/mysql_select_php.htm获得的代码。

我尝试了很多我所知道的不同选择陈述。我已经尝试将mysql_fetch_array更改为_assoc,我浏览了http://www.php.net/manual/en/function.mysql-fetch-assoc.php。我猜测将多个数据放在一个列中是不好的做法?任何帮助将不胜感激,我经常来这里学习PHP和MYSQL,现在我只是卡住了。谢谢!

2 个答案:

答案 0 :(得分:0)

您需要在查询中使用%

  $sql = 'SELECT * FROM runes WHERE rune_slot LIKE "%Helmet%"' ;

表示Helmet

的任意组合

答案 1 :(得分:0)

您在同类查询中缺少%。 将查询更改为“%helmet%”