在终端中为mysql定义分隔符

时间:2014-07-24 19:02:54

标签: mysql sql shell applescript

我正在终端中运行一些Mysql查询或通过AppleScript使用shell脚本,它将结果作为\ t“tab”分隔符吐出。有办法以某种方式改变它吗?

这是我运行的一个例子:

/usr/local/mysql/bin/mysql -uroot -e "SELECT * FROM mysql.table_name LIMIT 1;"

或Applescript:

set blah to (do shell script "/usr/local/mysql/bin/mysql -uroot -e \"SELECT * FROM mysql.table_name LIMIT 1;\""

现在变量'blah'是我返回的结果然后我可以使用AppleScript的文本项分隔符来阅读文本并获得我想要的特定文本项...

我的数据与“|”一起存储字段分隔符但由于某种原因它在运行此

时显示“\ t”

有什么建议吗?谢谢!

2 个答案:

答案 0 :(得分:1)

我很好奇为什么你说你的数据已经是管道分隔的,它是基于你在运行sql命令时在终端中看到的内容吗?数据库中的数据未设置为任何特定的分隔符,您在终端中看到的显示就是显示。

无论如何,你是对的。当您在AppleScript中运行select语句时,它将以制表符分隔的方式为您提供数据。如果您的数据已包含选项卡,您也会有一个有效的顾虑。好消息是两个标签的处理方式不同。字段之间的分隔符将作为标签返回(换句话说, \ t ),但内容中的标签将作为转义标签返回(换句话说, \\ t )。因此,您可以轻松地知道如果您使用设置为制表符的文本项分隔符,您实际上会按照预期的方式破坏您的内容。

答案 1 :(得分:0)

而不是更改mysql查询的输出你只需更改applescripts文本项分隔符就可以了

set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to tab
-- do stuff
set AppleScript's text item delimiters to tid

如果标签以文字“\ t”进入,则

set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to "\t"
-- do stuff
set AppleScript's text item delimiters to tid