Mysql , sql如何匹配字典内容
问题描述?
假如我有一条sql:
select id ,sex ,nation , type1,type2,type3,... from tb_people ;
//然后有一个字典表格
sex 1 男
sex 2 女
nation 1 汉族
nation 2 苗族
...
nation n xxxx
type1 1 aaa
type1 2 bbb
type2 x xxx
...
我想通过sql ,查询出结果为各字段的字典键值,即:
数据库中sex存储的1,2转换为男、女 ,存储的nation转换为汉族,xx族,
用过model的自定义属性,字段多太麻烦了,有个表有10多个要转换的字段。。。
也想过通过本地化,但是很多使用场景获取数据都是json格式,处理起来还是麻烦。
所以看看万能的大佬们有什么优雅的解决方法没得。
感谢!!!
用这个吧 属性修改器《Laravel 9 中文文档》
目前我能想到最方便的是,把字典固化到lang中,然后查询结果
属性修改器嫌麻烦,那就 join 查询出来不就好了
担心效率啥的,就查数据,在查字典,做个循环匹配处理
这个方案我会的,就是觉得太麻烦了, 字段多的时候,模型太臃肿了。。、
可以把字典存到文件里,读文件。修改也是修改文件内容
key 唯一 写个函数,传进去 sex , 1
如何你只用sql的话可以这样写
但如何用于数据返回,我建议通过模型修改器,修改器可以复用, 你可以定义一个全局model_options 的配置文件,记录所有模型的选项或者写在每个模型扩展trait中,这样模型就不臃肿了,如
用php8.1以上的话可以试试枚举
提供个不成熟的思路哈,语言包肯定是可以用的。
试试 Chatgpt 的答案 :joy: