【问题标题】:SELECT INTO OUTFILE WITH "WHERE" statementSELECT INTO OUTFILE WITH "WHERE" 语句
【发布时间】:2012-10-17 15:58:58
【问题描述】:

我正在尝试通过“SELECT INTO OUTFILE”从表中导出数据库记录。 一切正常。但我需要过滤记录,这就是问题所在。 代码如下:

SELECT * INTO OUTFILE 'file.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
FROM table_name WHERE name LIKE '%John%' AND LENGTH(name) <= 10 ORDER BY name

此语句不起作用,但如果我删除“name LIKE '%John%'”条件,它就会起作用。 但是我需要指定这个 LIKE 条件,我该如何完成呢?

谢谢。

【问题讨论】:

  • 此语句不起作用”是什么意思?发生什么了?你得到什么结果或错误?你期待什么?
  • 我通过 Wordpress WPDB 类执行此查询。它不返回任何东西。我希望收到文件。
  • 如果您在没有INTO OUTFILE 子句的情况下执行查询?实际上是否有任何满足条件WHERE name LIKE '%John%' AND LENGTH(name) &lt;= 10 的记录?请举个例子。
  • 我已经尝试通过mysql_query 执行查询,它可以工作。
  • 我已经删除了$wpdb-&gt;query 方法中的$wpdb-&gt;prepare 方法,现在它可以工作了。谢谢。

标签: mysql


【解决方案1】:

%sign 可能有问题。换个试试

WHERE name LIKE '%John%'

WHERE LOCATE(name, 'John') > 0

【讨论】:

  • % 符号可能有什么问题?
  • 我在一篇关于 WPDB 的帖子中读到:However, when I try to use it to add a row where one cell contains the percent sign ("%"), nothing happens.
  • 答案是:prepare() expects a sprintf() format string, in which the % is used to prefix placeholder types. You can use a literal % by prepending it with another %: %%.
猜你喜欢
  • 2011-02-21
  • 2013-03-24
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-24
  • 2018-07-02
相关资源
最近更新 更多