php-SQL,按文章语言排序,优先级为英语,然后为法语
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-SQL,按文章语言排序,优先级为英语,然后为法语,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1271字,纯文字阅读大概需要2分钟。
内容图文
![php-SQL,按文章语言排序,优先级为英语,然后为法语](/upload/InfoBanner/zyjiaocheng/884/92f8387e1e964e2cbe0c6540303ba567.jpg)
我正在使用多种语言的网站,但我有文章可能会或可能不会以网站所使用的所有语言提供文章.此外,用户还可以注册并选择一种首选语言.
我的问题是以下内容,当显示文章时,我希望它以这种方式显示:如果用户已登录,则显示他选择的语言;如果文章不是他的语言,请尝试以英语显示否则,如果不存在法语,则为德语等.
这是我的文章表:
news_id | lang | title | text |
1 | en | News en | bla.. |
1 | fr | News fr | bla.. |
2 | en | New en | bla.. |
3 | fr | Nws fr | bla.. |
我不知道如何在mysql中执行此操作.
我希望您能理解我的问题,我真的不知道如何更清楚地解释它.
解决方法:
尽管从技术上来说,戈登的答案是正确的,但我还是建议您采取一种稍有不同的方法:您可以添加另一个表(称为语言),该表在所使用的语言集上定义了partial order.
language
--------------------------
| id | name | rank |
--------------------------
1 en 1
2 fr 2
3 de 3
4 nl 4
现在,此表的数据集确定了网站语言上的部分顺序.要在查询中使用它,您可以执行以下操作:
SELECT a.*
FROM article a
, language b
WHERE a.id = [xxx]
AND a.lang = b.name
ORDER BY (a.lang = [session.lang]) DESC,
b.rank ASC
LIMIT 1
你问什么呢?
好吧,以这种方式进行设置,一旦您需要将语言集上的部分顺序更改为其他内容,就不必更新查询以反映该更改.当然,仅需几个查询就不会很麻烦,但是一旦您建立了几十个具有语言意识的查询,它就会让您大吃一惊.
内容总结
以上是互联网集市为您收集整理的php-SQL,按文章语言排序,优先级为英语,然后为法语全部内容,希望文章能够帮你解决php-SQL,按文章语言排序,优先级为英语,然后为法语所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。