【问题标题】:Managing MySQL SET datatype in PHP在 PHP 中管理 MySQL SET 数据类型
【发布时间】:2013-07-01 02:58:24
【问题描述】:

我在 MySQL 数据库中有以下数据类型的列 'Ambience'

set('Funny', 'Sad', 'Scary')

我正在通过 PHP 查询数据:

$result = mysqli_query($con,"SELECT * FROM Films");

我想知道如何在客户端处理这种数据类型。例如,我想找一部吓人的电影并打印出来。我应该将整个 SET 数据类型视为字符串吗?

【问题讨论】:

    标签: php mysql sql types set


    【解决方案1】:

    如果你想要一部恐怖的电影:

    SELECT * FROM Films WHERE FIND_IN_SET('Scary', Ambience) > 0;
    

    【讨论】:

    • Saurabh Chandra Patel 注意到这会很慢。
    【解决方案2】:

    这是一个糟糕的设计,因为您需要搜索 Ambience 字段的特定值。你可以使用FIND_IN_SET,但是你的查询会很慢。转到Ambience 的原子值

    【讨论】:

    • 那么您认为存储“Ambience”多个值的最佳方式是什么?为 Ambience 创建一个单独的表是否是个好主意(例如,为每列使用布尔(BIT?)数据类型?会有 3 列:'Funny'、'Sad'、'Scary')
    • 您可以创建具有三列的新表,并使用表主键来提高性能(主键应为整数)
    • 谢谢@Saurabh Chandra Patel!如果我有 100 列,仍然是最佳解决方案吗? (100 种“氛围”)
    • 嗯,你没有回答我的最后一个问题:P。不过还是谢谢你的想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多