2013-06-20 23 views
0

我有一个名为“精选”栏目,这是数据库表或者ynPHP:强制“精选”到顶部

我试图强迫任何“精选” ==“Y”,首先打印(它打印HTML通过foreach循环)。

现在它只是加载索引(ID)的顺序。

我试着将ORDER BY Featured添加到我的SQL查询的末尾,但它什么也没做。

我该如何做到这一点?

我通过一个通用函数使用它。我能做些什么来检查“精选”是否存在而不做2个查询?

它打破了上表的SQL不包含“精选”

我设置了一个switch改变仅在需要的SQL ..但我宁愿处理这SQL语句如果有人知道如何混合IF EXISTS英寸感谢您的帮助!

+4

'ORDER BY Featured ='y'DESC' should do it。如果不是,则显示整个查询。 – Wrikken

+0

数据类型是'varchar(1)' –

+0

像魅力一样工作!答案和点是你的。谢谢! –

回答

4

而不是使用Y和N值,使用更像数字的方法,如1和0,这样你可以使用数字排序。但如果你真的不想改变你的列值,那么只需做

ORDER BY Featured DESC 

因为这将使所有的Ys第一。 PS:未来,你会发现使用数字来布尔(1和0)更好,这将使你能够在将来有第三和第四种场景的情况下添加小众功能(所以你可以将它设置为2和3等)。

+0

有没有一种方法可以在'ORDER BY'之前使用'IF EXISTS'来检查特色? –

+0

虽然我同意一个布尔型字段,但是,应该是一个布尔型,并且您提到它是正确的,参数_'将赋予您添加利基特性的能力__并不支持针对字符列的水,可以容纳,任何你喜欢的字符? – Wrikken

+0

@Wrikken记住这里的要点是,他需要按这个值排序,一旦你开始使用随机字符来呈现不同的状态,你就会直接从窗口中排序。 – TravisO