在Postgresql中搜索下划线时,字符 override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
if array.count > 0 {
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
return array.count
} else {
let messageLabel = UILabel(frame: CGRect(x: 20.0, y: 0, width: self.tableView.bounds.size.width - 40.0, height: self.tableView.bounds.size.height))
messageLabel.text = "This is the message I would like to display when there is nothing returned from my model"
messageLabel.numberOfLines = 0
messageLabel.textAlignment = NSTextAlignment.Center
messageLabel.sizeToFit()
tableView.backgroundView = messageLabel
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
}
return 0
}
的字面使用不起作用。例如,如果您希望在所有表中搜索以_
结尾的任何列,例如更改日志或活动信息,例如_by
,updated_by
等,以下查询几乎可以运作:
reviewed_by
它基本上完全忽略下划线并返回,就像您搜索SELECT table_name, column_name FROM information_schema.columns
WHERE column_name LIKE '%_by'
一样。这在所有情况下都可能不是问题,但它有可能成为一个问题。如何搜索下划线?
答案 0 :(得分:17)
您需要使用反斜杠来转义下划线。将示例查询更改为以下内容:
LIKE '%by'
答案 1 :(得分:3)
刚遇到同样的问题,单个反斜杠也不起作用。我在PostgreSQL社区找到了这个文档并且它有效:
正确的方法是使用反斜杠转义下划线。您 实际上必须在查询中写两个反斜杠:
选择*来自 foo哪里有像'%\\ _ baz'
第一个反斜杠引用了查询解析器的第二个反斜杠,所以 最终在系统内部的是%\ _ baz,然后是LIKE 函数知道如何处理它。
因此请使用以下内容:
SELECT table_name, column_name FROM information_schema.columns
WHERE column_name LIKE '%\\_by'
来源文档:https://www.postgresql.org/message-id/10965.962991238%40sss.pgh.pa.us