https://github.com/denq/sqldom
https://github.com/denq/sqldom
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/denq/sqldom
- Owner: DenQ
- Created: 2015-06-16T18:25:33.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-07-09T16:24:55.000Z (almost 11 years ago)
- Last Synced: 2023-08-15T13:48:05.478Z (almost 3 years ago)
- Language: CoffeeScript
- Size: 602 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SqlDom
Концепция
Пример первый:
```
insert div.myClass into :element
where count(root>div) < 10
```
Найти div.myClass и вставить в него :element
если прямых потомков у div.myClass меньше 10
```
insert div.myClass into :element * 5
where count(root>div) < 10
```
Тоже что и выше, только вставить сразу 5 элементов
```
select
root:foo(),
root>div.childClass:bar()
from div.myClass
where count(root>div) < 10
```
Найти div.myClass, и при условии, что прямых потомков будет менее 10,
произвести над каждым найденным div.myClass действия описанные в foo(),
а над каждым div.myClass>div.childClass - bar()
```
select :action(*) from div.one as one
left join div.two as two on :r(one, two)
where one.length is two.length
order by [one, two: desc]
limit 10
offset 5
```
Найти все div.one дать им на каждой итерации обхода, алиас - one,
попутно найти все div.two дав алиас two,
сопоставить каждой one, two, в зависимоти от результата функции :r(one, two).
Выполнить :action на каждой итерации, если длины one и two совпадают.
Итератор должен двигаться для one вниз, а для two вверх.
Начать обход с 5 позиции, и пройти до 15ой
Зарезервированные слова:
* root - алиас основной таблицы, если он не был указан явно