【问题标题】:select from mysql Table a string that contains slash从mysql表中选择一个包含斜杠的字符串
【发布时间】:2019-02-07 15:33:46
【问题描述】:

如何在 mysql 中选择 ex: "1/2019" 的值?

as select * from table where column = "1/9099" 无法正常工作

【问题讨论】:

  • 该列的数据类型是什么?
  • 你怎么知道该列包含斜杠?
  • 为什么要标记“java”?你在 JDBC 中这样做吗?如果是这样,请发布代码并定义“无法正常工作”。
  • @TitoTito 该模式看起来如何?你在哪里定义的。它是如何执行的? “无法正常工作”是什么意思?

标签: java mysql


【解决方案1】:

以下查询应该在 MySQL 上运行完全正常:

SELECT * FROM table WHERE column = '1/9099';

请注意,我在字符串文字周围放置了 引号,而不是双引号。 ANSI SQL 中的双引号旨在放置在标识符周围,例如表名或列名。在 MySQL 字符串文字中没有任何特殊含义的正斜杠。

如果这个答案不能完全解决您的问题,那么可能包括您的 Java/JDBC/Hibernate 代码。

还要注意column 是 MySQL 中的保留关键字。此答案假定查询中的 column 只是其他名称的占位符。

【讨论】:

    【解决方案2】:

    如果数据类型是 DATE,您可以使用如下内容:

    SELECT * FROM table WHERE MONTH( column ) = '1' AND YEAR( column ) = '2019';
    

    【讨论】:

      【解决方案3】:

      如果你这样做是Java,那么引号可能有问题。

      String sql = "select * from table where column = '1/9099'";
      

      或者试试

      String sql = "select * from table where column = \"1/9099\"";
      

      斜线对于 MySQL(或任何其他系统,如果它不是 UNIX 路径)应该不是问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-29
        • 2019-04-18
        • 2018-09-25
        • 2012-11-21
        • 2012-06-28
        • 1970-01-01
        • 2013-08-11
        • 1970-01-01
        相关资源
        最近更新 更多