【问题标题】:Mysql - How can I select column where row is in array?Mysql - 如何选择行在数组中的列?
【发布时间】:2014-09-03 08:36:10
【问题描述】:

我在 MySQL 中有一个事件列表,其中包含事件标题、事件时间、日期等。在每个事件中都有被邀请者(被邀请参加事件的人)。

所以基本上我的表事件表如下所示:

通过查看表格,您会注意到我的event_invitees 是一个数组,我设法使用教程here 保存了一个数组。因此,从本教程中,我可以将数组从表格中取出。

我想要的是SELECT 表格WHERE myString 在event_invitees 数组中的列

所以以上图为例。我有一个字符串“tnylee”,我希望能够选择包含名为 tnylee 的 event_invitees 的每一行。

我该怎么做?这可能吗? 如果问题不够清楚,请发表评论

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 您要根据序列化字符串中的项目进行选择吗?哦不
  • @Ghost 是的。我该怎么做?

标签: php mysql sql arrays phpmyadmin


【解决方案1】:

您可以使用like关键字过滤数据

SELECT * FROM table_name WHERE event_invitees LIKE '%tnylee%'

然后您将收到列值作为“tnylee”模式的结果。

您可以在提取数据时检查所选行是否包含精确值(使用程序)。

【讨论】:

  • 您可以通过程序检查检索到的数据与结果是否完全匹配
【解决方案2】:

与其将 event_invitees 存储在一个序列化列中,更好的解决方案是将它们保存在依赖表中

此表将包含:

CREATE TABLE `CREATE TABLE `table_code` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_person` integer NOT NULL,
  `id_event` integer  NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

无论如何,您可以使用“LIKE”运算符: 选择 * 从事件 WHERE event_invitees LIKE '%YourSearch%'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-18
    • 2022-01-22
    • 2015-11-12
    • 2023-03-20
    • 2021-02-10
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    相关资源
    最近更新 更多