2019独角兽企业重金招聘Python工程师标准>>>

我很喜欢David Fincher的龙纹身女孩。区别于肤浅的为了钱的很多好莱坞电影,这个电影是个有紧张气氛的,又十分大气的,只是稍微有点惊悚的电影。我最喜欢的部分是当利斯贝斯萨兰德开始用SQL解决一个谋杀案的时候。

我们可以从下面的图中的绿色的代码看到,他在他的笔记本上查询瑞典警方的数据库,关键词有未解决的,断头等,但是他没有查询整个库。

这里我使用photoshop把几张图片拼接在一起,就得到了如下:

观众会立即发现,这并不是Oracle SQL,很明显AS在在这样的表别名下是不合法的。

请注意,我们能辨别出她使用了一个ANSI“FT”左连接到Keyword表

最后我们得到Västra Götaland的一个结果列表。

下面是我们通过Oracle WTF重建的SQL。

SELECT DISTINCT v.fname, v.lname, i.year, i.location, i.report_file
FROM   Incident AS iLEFT JOIN V(ictim?)...  -- presumably v.incident_id = i.idLEFT JOIN Keyword AS k ON k.incident_id = i.id
WHERE  i.year BETWEEN 1947 AND 1966
AND    i.type = 'HOMICIDE'
AND    v.sex = 'F'
AND    i.status = 'UNSOLVED'
AND    ...OR v.fname IN ('Mari', 'Magda')OR SUBSTR ...
AND    (k.keyword IN ('rape', 'decapitation', 'dismemberment', 'fire', 'altar', 'priest', 'prostitute')...AND SUBSTR(v.fname, 1, 1) = 'R' AND SUBSTR(v.lname, 1, 1) = 'L');+--------+---------+------+-----------+----------------------------------+
| fname  | lname   | year | location  | report_file                      |
+--------+---------+------+-----------+----------------------------------+
| Anna   | Wedin   | 1956 | Mark      | FULL POLICE REPORT NOT DIGITIZED |
| Linda  | Janson  | 1955 | Mariestad | FULL POLICE REPORT NOT DIGITIZED |
| Simone | Grau    | 1958 | Goteborg  | FULL POLICE REPORT NOT DIGITIZED |
| Lea    | Persson | 1962 | Uddevalla | FULL POLICE REPORT NOT DIGITIZED |
| Kajsa  | Severin | 1962 | Dals-Ed   | FULL POLICE REPORT NOT DIGITIZED |
+--------+---------+------+-----------+----------------------------------+

好奇的观众会继续问,为什么一个天才级的黑客仅仅使用文字文本过滤的方式去外链被害人和关键词表,岂不知MySQL是有LIKE运算符的,为什么受害者中没有缩写为“R L”的。

OSCHINA.NET原创翻译/原文链接

转载于:https://my.oschina.net/jack230230/blog/63569

电影《龙纹身女孩》中的那句 SQL相关推荐

  1. [转]电影《龙纹身女孩》中的那句 SQL-----The Girl With The ANSI Tattoo

    电影<龙纹身女孩>中的那句 SQL 我很喜欢David Fincher的龙纹身女孩.区别于肤浅的为了钱的很多好莱坞电影,这个电影是个有紧张气氛的,又十分大气的,只是稍微有点惊悚的电影.我最 ...

  2. 第一百三十二期:MySQL系列:一句SQL,MySQL是怎么工作的?

    当我们在mysql窗口或者数据库连接工具中输入一句sql后,我们就可以获取到想要的数据,这中间MySQL到底是怎么工作的呢? 作者:Java架构学习交流 对于MySQL而言,其实分为客户端与服务端. ...

  3. log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?...

    http://www.cnblogs.com/gredswsh/p/log4j_xml_properties.html 请问:log4j.properties中的这句话"log4j.logg ...

  4. 一句SQL实现获取自增列操作

    今天做了一个应用,对TAB_1表进行插入操作的时候,需要获取自增ID的值,插入到TAB_2里面,隐隐约约记得SQL里面有个全局变量@@IDENTITY可以实现这样的业务需要,凭着感觉写了下面的SQL语 ...

  5. mysql中00933错误_ORA-00933: SQL command not properly ended

    今天写了一个小的SQL语句类似下面的这句: UPDATEASET ID=B.IDFROMA,BWHERE A.NAME=B.NAME 在执行时居然报了"ORA-00933: SQL comm ...

  6. db2关闭下一句sql的日志_MySQL查询优化(3)-慢查询开启、日志分析

    说明 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应时间超过阈值的语句 具体指运行时间超过long_query_time值得SQL,则会被记录到慢查询日志中.lon ...

  7. 从一句SQL得出的启示

    select count(*) + 1 from `table` where rank > (select rank from `table` where id = *) 上面那句SQL 给了我 ...

  8. ON DUPLICATE KEY UPDATE 作用及一句SQL实现批量修改

    ON DUPLICATE KEY UPDATE 作用及一句SQL实现批量修改 本文学习自ON DUPLICATE KEY UPDATE 用法与说明 首先声明:ON DUPLICATE KEY UPDA ...

  9. 在线电影推荐网 Python+Django+Mysql 协同过滤推荐算法在电影网站中的运用 基于用户、物品的协同过滤推荐算法 开发在线电影推荐系统 电影网站推荐系统 人工智能、大数据、机器学习开发

    在线电影推荐网 Python+Django+Mysql 协同过滤推荐算法在电影网站中的运用 基于用户.物品的协同过滤推荐算法 开发在线电影推荐系统 电影网站推荐系统 人工智能.大数据.机器学习开发 M ...

最新文章

  1. 为什么说新型冠状病毒疫苗会研制成功?
  2. oracle 得到一个树,Related to Oracle SQL 关于树形数据的遍历
  3. python 白化_MeteoInfo和Python显著性检验
  4. 机器学习实战3-sklearn使用下载MNIST数据集进行分类项目
  5. 三国佚事--巴蜀危机
  6. linux 文件查找_Linux中的文件内查找小技巧
  7. Ubuntu中的截图工具
  8. 杰里之006-p2 的 Linein 录音使用方式【篇】
  9. 显示upnp服务器 sonos,蒲公英的上层设备如何开启UPnP及其优点
  10. gmail smtp 535 5.7.8无法登陆解决
  11. [爱分享]jeecms基础+导航条+例子分析
  12. MT6737芯片功能介绍+MT6737芯片资料分享
  13. Ubuntu下安装gem包curses的步骤
  14. 微信网页程序开发,如何解决后退时重复登录的问题
  15. UHS-II文档学习
  16. ABBYY FineReader:PDF转换、一键OCR、图片转文字等,OCR识别一遍帮你搞定。
  17. Mplayer完美安装手册(转)
  18. C++ R 原始字符串 R 表示方法,R是原始字符串
  19. 【解决问题】笔记本换硬盘 BIOS 不能识别
  20. 什么是软件工程?他有那些本质特征?怎样用软件工程消除软件危机?

热门文章

  1. Flash小玩意图案创作:增加太阳花图案
  2. 【中秋特辑】嫦娥妹妹,你别着急~
  3. 一度智信:店铺客服如何正确处理中差评情况
  4. 【Python】ValueError:Sample larger than population or is negative的原因
  5. 在云手机中访问本地相册的方法
  6. 解决vscode在拉取代码报错:在签出前,晴清理存储库工作树。
  7. linux printk 优先级,printk与日志优先级设置
  8. E. DS线性表—多项式相加
  9. MySQL零基础从入门到精通(多表篇)
  10. PayPal账户的支付