【问题标题】:How to check whether a value exists among a set of values in a record in mysql如何检查mysql中记录的一组值中是否存在一个值
【发布时间】:2017-12-05 07:27:44
【问题描述】:

我使用 MySQL 的方式是让用户输入日期并在当天出现航班。我懒得输入很多日期,所以我所做的是让某些航班在某些日子运行。

表平面包含许多列,其中 dtd(column contains many days of type varchar(50)) 。

一条记录(在 dtd 中)是星期一、星期二 用户输入日期 2018-12-03,即星期一。

我的问题是如何只提取星期一的记录?(比如星期一,星期二)??

我试过 select.....where instr(day(2018-12-03),dtd)0 但我意识到 instr 在 2 种情况下给出 0 1. 字符不在记录中或 2.发生在开始。

像 instr(h,hello) 和 instr(a,hello) 一样给出 0。

请帮忙

【问题讨论】:

  • 将日期(时间)保存为日期(时间)而不是字符串。
  • 没有列 dtd 有天数
  • 就像一个记录有'星期一,星期二'
  • 'monday,tuesday' 也很糟糕。创建另一个包含列flight_id (or another id fromt his table) | day 的表。数据将作为1 | monday, 1 | tuesday, ...

标签: mysql database


【解决方案1】:

我建议您使用LIKE 运算符。
有关它的更多信息,请查看此链接:SQL Like Operator
要解决您的问题,您可以尝试以下方法:

SELECT ...
  WHERE dtd LIKE CONCAT('%', day(2018-12-03), '%');

在这种情况下,您将获得表的所有行,其中字段 dtd 的值包含 day(2018-12-03) 的值。
希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多