javascript - 如何在客户端浏览器中执行类似 SQL 的查询?

标签 javascript jquery sql

我一直在寻找一种方法来执行复杂的查询,例如 SQL 可以执行但完全在客户端。我知道我可以通过从服务器执行 SQL 查询来获得我想要的确切结果,我什至可以使用 AJAX 来使其看起来很流畅。但是,出于可扩展性、性能和带宽方面的原因,我更愿意在所有客户端执行此操作。

一些要求:

  • 广泛的浏览器兼容性。任何可以运行 jQuery 的东西都可以。我实际上更喜欢它是一个 jQuery 插件。
  • 可以对多个列进行排序。例如,按州的字母顺序排序,并按字母顺序列出每个州内的所有城市。
  • 可以过滤结果。例如,相当于“where state = 'CA' or 'NY' or 'TX'”。
  • 必须完全在客户端工作,这样用户只需下载一次大量数据,就可以根据需要剪切数据,而无需不断地从服务器获取数据,并且实际上能够在初始查询后离线执行所有查询拉。

我在 stackoverflow 上查看了一下,发现了 jslinq,但它的最后一次更新是在 2009 年,并且没有文档。我也无法判断它是否可以执行更复杂的查询,例如在两个不同的列上排序或执行“and”或“or”过滤。

我认为这样的事情已经完成了。我知道 HTML5 是沿着这条道路开始的,但后来遇到了障碍。我只需要基本查询,不需要联接或任何东西。有谁知道有什么可以做到这一点?谢谢。

编辑:我认为我应该包含一个用例来帮助阐明我正在寻找的内容。

例如,我有一个美国 5000 个最大城市的列表。每条记录包括城市名称、州和人口。我希望能够下载整个数据集一次并用它填充 JS 数组,然后仅在客户端,能够运行如下查询并根据结果记录创建一个表。

  • 加州十大城市
  • 所有以“S”开头且人口在 100 万或以上的城市。
  • 加利福尼亚州、纽约州、佛罗里达州、德克萨斯州和伊利诺伊州这三个最大的城市,然后按州的字母顺序排列,然后按人口顺序排列。即加利福尼亚州、洛杉矶,3,792,621;加利福尼亚州圣地亚哥,1,307,402;加利福尼亚州、圣何塞、945,942...等。

所有这些查询通过 SQL 来完成都是微不足道的,但我不想一直在服务器上来回,而且我还想允许离线使用。

最佳答案

看看http://linqjs.codeplex.com/

它可以轻松满足您的所有要求。

关于javascript - 如何在客户端浏览器中执行类似 SQL 的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43944327/

相关文章:

带有输出文件和屏幕输出的 sqlcmd

sproutcore - Sproutcore:更改鼠标事件的css属性

javascript - 添加 DISPLAY : NONE to span via jQuery when: mouse-click outside span, 或单击退出按钮等+

javascript - 动态下拉列表(包括 JSFiddle)

java - 如何发送多个选项卡的公共(public)请求?

sql - 从具有非唯一外键的表中选择 N 行

java - HTTP 状态 404 : The requested resource is not available

javascript - 按照与另一个数组相同的顺序对数组进行排序

javascript - WebdriverJS : driver. manage().logs().get ('browser' ) 返回空数组

javascript - Bootstrap3,带有透明覆盖的模态,但也可以通过在模态外单击来关闭它