在数据库中显示特定类别

时间:2013-11-06 23:59:30

标签: sql

我的数据库中有两个表。一个名为jokes,另一个名为category

这是PHP,它用类别名称显示每个笑话。

SELECT  jokes.*, 
        category.name 
FROM jokes jokes 
LEFT JOIN category category ON category.category_id = jokes.category_id 
ORDER BY joke_id DESC';

如何更改$sql变量的查询以仅显示表中的特定类别?例如,一个简短的笑话页面,只显示简短的笑话。

2 个答案:

答案 0 :(得分:0)

显然你的问题与PHP无关,这只是一个sql问题。

无论如何,绑定到单个类别的所有查询的底线是在列出表名后添加WHERE关键字,后跟要搜索的列名及其搜索值。 / p>

示例:

$sql = "SELECT * FROM joke j WHERE j.category  = :cat";

假设你足够聪明,可以使用预备语句。然后你可以执行一个变量数组,其中short或它的实际id作为变量,指示要搜索的类别。

对于SELECT *而言,这是一个不好的做法,因为这是一个性能问题,你真的需要所有的数据吗?您是否希望通过告知表中所需的列来使查询更清晰?

对于你的情况:

$sql = 'SELECT jokes.*, category.name 
FROM jokes jokes 
LEFT JOIN category category 
ON category.category_id = jokes.category_id 
WHERE jokes.category_id = :cat 
ORDER BY joke_id DESC';

答案 1 :(得分:0)

添加WHERE子句

SELECT jokes.*, category.name FROM jokes jokes 
LEFT JOIN category category ON category.category_id = jokes.category_id 
WHERE category.category_id = x
ORDER BY joke_id DESC

另外,为什么你要给你的表一个同名的别名 ?

SELECT * FROM jokes j 是典型的方式。