其中从逗号条件在MySQL和笨分隔VARCHAR(where condition from a co

2019-10-18 15:35发布

我有两个表称为musical_types和musical_albums其中musical_types由TYPE_NAME和自动增量ID,其中如在musical_albums表包含自动递增ID,名称,型号,其是存储musical_types的id作为样1逗号分隔值的VARCHAR ,2,3,4等,所以任何人都可以请帮我从musical_albums表中获取的X型的所有专辑。

我想MySQL的喜欢,但它是不正确的。 所以请帮我写此查询..

IAM使用笨,是有可能写在codeigniters活性记录类上述查询。

另一点是,这是一个Joomla组件表的设计,以及IAM写作,返回音乐节目,歌曲等的机器人web服务的脚本..

提前致谢。

Answer 1:

尝试已经提到过这个人,但@juergen不存储值逗号分隔它会导致疼痛,现在你可以按照以下做

$this->db->select('*');
$this->db->from('musical_albums');
 //$this->db->join('second table name', 'relation id of 1st table = relation id of 2nd table');
 //Custom string: in where 
$where = " FIND_IN_SET('x',`types`)";
$this->db->where($where);
$query = $this->db->get();

活动记录

FIND_IN_SET()



Answer 2:

永远,永远,永远多值存储在一列!

就像你现在看到的这样只会让你头痛。 规范化表。 然后你就可以正常参加。



Answer 3:

你有什么是审阅为您的数据类型和专辑数据之间的许多一对多的关系。 作为@juergen提到的,试图将多个值存储在一列像你这样做是不正确。 快速谷歌搜索将让你大量的信息为你所需要的,但基本上你想要第三个“映射”表中,仅仅专辑及其类型映射在一起。



文章来源: where condition from a comma seperated varchar in mysql and codeigniter