mirror of
https://github.com/jbranchaud/til
synced 2026-01-07 00:58:02 +00:00
Compare commits
2 Commits
5f11b1665b
...
53a0b88eff
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
53a0b88eff | ||
|
|
665c8f994f |
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
|||||||
|
|
||||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||||
|
|
||||||
_1695 TILs and counting..._
|
_1697 TILs and counting..._
|
||||||
|
|
||||||
See some of the other learning resources I work on:
|
See some of the other learning resources I work on:
|
||||||
|
|
||||||
@@ -380,6 +380,7 @@ If you've learned something here, support my efforts writing daily TILs by
|
|||||||
- [Last Commit A File Appeared In](git/last-commit-a-file-appeared-in.md)
|
- [Last Commit A File Appeared In](git/last-commit-a-file-appeared-in.md)
|
||||||
- [List All Files Added During Span Of Time](git/list-all-files-added-during-span-of-time.md)
|
- [List All Files Added During Span Of Time](git/list-all-files-added-during-span-of-time.md)
|
||||||
- [List All Files Changed Between Two Branches](git/list-all-files-changed-between-two-branches.md)
|
- [List All Files Changed Between Two Branches](git/list-all-files-changed-between-two-branches.md)
|
||||||
|
- [List All Git Aliases From gitconfig](git/list-all-git-aliases-from-gitconfig.md)
|
||||||
- [List Branches That Contain A Commit](git/list-branches-that-contain-a-commit.md)
|
- [List Branches That Contain A Commit](git/list-branches-that-contain-a-commit.md)
|
||||||
- [List Commits On A Branch](git/list-commits-on-a-branch.md)
|
- [List Commits On A Branch](git/list-commits-on-a-branch.md)
|
||||||
- [List Different Commits Between Two Branches](git/list-different-commits-between-two-branches.md)
|
- [List Different Commits Between Two Branches](git/list-different-commits-between-two-branches.md)
|
||||||
@@ -762,6 +763,7 @@ If you've learned something here, support my efforts writing daily TILs by
|
|||||||
- [Doing Date Math](mysql/doing-date-math.md)
|
- [Doing Date Math](mysql/doing-date-math.md)
|
||||||
- [Dump A Database To A File](mysql/dump-a-database-to-a-file.md)
|
- [Dump A Database To A File](mysql/dump-a-database-to-a-file.md)
|
||||||
- [Echo A Message From A SQL File](mysql/echo-a-message-from-a-sql-file.md)
|
- [Echo A Message From A SQL File](mysql/echo-a-message-from-a-sql-file.md)
|
||||||
|
- [Get Idea Of What Is In A JSON Column](mysql/get-idea-of-what-is-in-a-json-column.md)
|
||||||
- [Ignore Duplicates When Inserting Records](mysql/ignore-duplicates-when-inserting-records.md)
|
- [Ignore Duplicates When Inserting Records](mysql/ignore-duplicates-when-inserting-records.md)
|
||||||
- [List Databases And Tables](mysql/list-databases-and-tables.md)
|
- [List Databases And Tables](mysql/list-databases-and-tables.md)
|
||||||
- [Run Statements In A Transaction](mysql/run-statements-in-a-transaction.md)
|
- [Run Statements In A Transaction](mysql/run-statements-in-a-transaction.md)
|
||||||
|
|||||||
28
git/list-all-git-aliases-from-gitconfig.md
Normal file
28
git/list-all-git-aliases-from-gitconfig.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# List All Git Aliases From gitconfig
|
||||||
|
|
||||||
|
Running the `git config --list` command will show all of the configuration
|
||||||
|
settings you have for `git` relative to your current location. Though most of
|
||||||
|
these setting probably live in `~/.gitconfig`, you may also have some locally
|
||||||
|
specified ones in `.git/config`. This will grab them all including any `alias`
|
||||||
|
entries.
|
||||||
|
|
||||||
|
We can narrow things down to just `alias` entries using the `--get-regexp` flag.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git config --get-regexp '^alias\.'
|
||||||
|
|
||||||
|
alias.ap add --patch
|
||||||
|
alias.authors shortlog -s -n -e
|
||||||
|
alias.co checkout
|
||||||
|
alias.st status
|
||||||
|
alias.put push origin HEAD
|
||||||
|
alias.fixup commit --fixup
|
||||||
|
alias.squash commit --squash
|
||||||
|
alias.doff reset HEAD^
|
||||||
|
alias.add-untracked !git status --porcelain | awk '/\?\?/{ print $2 }' | xargs git add
|
||||||
|
alias.reset-authors commit --amend --reset-author -CHEAD
|
||||||
|
```
|
||||||
|
|
||||||
|
I use `git doff` all the time on feature branches to "pop" the latest commmit
|
||||||
|
onto the working copy. I was trying to remember exactly what the `git doff`
|
||||||
|
command is and this was an easy way to check.
|
||||||
40
mysql/get-idea-of-what-is-in-a-json-column.md
Normal file
40
mysql/get-idea-of-what-is-in-a-json-column.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Get Idea Of What Is In A JSON Column
|
||||||
|
|
||||||
|
While digging through some data trying to reacquaint myself with the overall
|
||||||
|
schema and data model, I ran into an issue selecting rows from this
|
||||||
|
`content_resource` table. There was so much text packed in to the `"body"`,
|
||||||
|
`"summary"`, and `"description"` key-value pairs of `fields` JSON column that a
|
||||||
|
simple `select * ... limit 3;` was overwhelming the screen with text and table
|
||||||
|
formatting characters (i.e. `+------+-------`).
|
||||||
|
|
||||||
|
I figured the `fields` JSON followed a reliable structure, at least for records
|
||||||
|
of the same `type`. So, let's start by only grabbing the
|
||||||
|
[`json_keys`](https://dev.mysql.com/doc/refman/8.4/en/json-search-functions.html#function_json-keys)
|
||||||
|
so that I can get a sense of the shape of the JSON.
|
||||||
|
|
||||||
|
```sql
|
||||||
|
select id, json_keys(fields)
|
||||||
|
from content_resource
|
||||||
|
where type = 'post'
|
||||||
|
limit 3;
|
||||||
|
|
||||||
|
+-----+-----------------------------------------------------------------------------------------------------------+
|
||||||
|
| id | json_keys(`fields`) |
|
||||||
|
+-----+-----------------------------------------------------------------------------------------------------------+
|
||||||
|
| 1 | ["body", "slug", "state", "title", "summary", "postType", "visibility", "description", "originalLessonId"] |
|
||||||
|
| 2 | ["body", "slug", "state", "title", "summary", "postType", "visibility", "description", "originalLessonId"] |
|
||||||
|
| 3 | ["body", "slug", "state", "title", "summary", "postType", "visibility", "description", "originalLessonId"] |
|
||||||
|
+-----+-----------------------------------------------------------------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
For the `post` type, I see the same keys for this sampling of rows. Now I have
|
||||||
|
an idea what keys are present and can start digging in further.
|
||||||
|
|
||||||
|
My next query might look something like this:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
select id, fields->'$.slug', fields->'$.title', fields->'$.state'
|
||||||
|
from content_resource
|
||||||
|
where type = 'post'
|
||||||
|
limit 3;
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user