从列中选择值为9的行

时间:2015-02-20 14:14:48

标签: mysql sql

我试图从列中选择记录编号为9的列。这似乎很容易,但我无法弄明白。 这是我到目前为止所尝试的:

SELECT * FROM posts WHERE category = 9 LIMIT 3

和这个

SELECT * FROM posts WHERE category LIKE '%9%' LIMIT 3

还有一些,但没有一个返回正确的结果。

更新:

在表posts中我有

post_id
....
category

类别包含值12等。 我想在网站上仅显示类别列category=9

中值为9的帖子

更新2:

这是帖子表

CREATE TABLE IF NOT EXISTS `posts` (
`post_id` int(11) NOT NULL AUTO_INCREMENT,
`post_title` varchar(250) NOT NULL,
`post_text` longtext NOT NULL,
`post_author` varchar(20) NOT NULL,
`category` int(4) NOT NULL,
PRIMARY KEY (`post_id`),
KEY `category` (`category`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;

ALTER TABLE `posts`
ADD CONSTRAINT `posts_ibfk_1` FOREIGN KEY (`category`) REFERENCES `category` (`cat_id`);

和数据,例如

INSERT INTO `posts` (`post_id`, `post_title`, `post_text`, `post_author`, `category`) VALUES
(1, 'title', 'LOREM IPSUM', 'Athor', 1),

更新3:我尝试使用的完整代码

 require_once 'misc/database.inc.php'; 
    $pdo = Database::connect();
    error_reporting(E_ALL); 
    ini_set('display_errors', 1);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    function truncate($text, $chars = 180) {
            $text = $text." ";
            $text = substr($text,0,$chars);
            $text = substr($text,0,strrpos($text,' '));
            $text = $text." ...";
            return $text;
    }
    $query2 = $pdo->query("SELECT * FROM posts WHERE category = '7' LIMIT 3");
    foreach ($query2 as $row) {
        echo '<li class="col-md-12 col-sm-4"> 
              <div class="single-post">
              <h4>'.$post['post_title'].'</h4>   
              <p>'.truncate($row['post_text']).'</p>
              <a href="#" style="float: right;"> More -></a>
              </div>
              </li>';                
    }                          
    Database::disconnect();

1 个答案:

答案 0 :(得分:1)

嗯,你在循环中使用$ post ['post_title'](ForEach) 尝试使用$ row-&gt; post_title

参考https://ellislab.com/codeIgniter/user-guide/database/results.html