SQLite has a similar tool - sqlite3.exe
sqlite> CREATE TABLE amvideos(address TEXT, title TEXT);
sqlite> INSERT INTO amvideos(address, title)
...> VALUES('1234567890', 'vid1')
...> , ('2345678901', 'vid2')
...> , ('3456789012', 'vid3')
...> , ('4567890123', 'vid4')
...> , ('5678901234', 'vid5')
...> , ('6789012345', 'vid6')
...> , ('275293411', 'fixed');
sqlite> SELECT address, title FROM amvideos WHERE address = `275293411`
...> UNION
...> SELECT address, title FROM amvideos WHERE address != `275293411` ORDER BY RANDOM() LIMIT 5;
Error: no such column: 275293411
sqlite> DROP TABLE amvideos;
instead of “unknown column” it gives “no such column” (meh, same difference)
changing the backticks to quotes gives
Error: 1st ORDER BY term does not match any column in the result set
changing to a single SELECT doesn’t error
sqlite> SELECT address, title FROM amvideos WHERE address != '275293411' ORDER BY RANDOM() LIMIT 5;
2345678901|vid2
5678901234|vid5
4567890123|vid4
6789012345|vid6
1234567890|vid1
So a problem could be a syntax issue. Indeed, this doesn’t error
sqlite> SELECT address, title
...> FROM amvideos
...> WHERE address = '275293411'
...> OR address IN (SELECT address
...> FROM amvideos
...> WHERE address != '275293411'
...> ORDER BY RANDOM() LIMIT 5);
2345678901|vid2
3456789012|vid3
4567890123|vid4
5678901234|vid5
6789012345|vid6
275293411|fixed
If “fixed” needs to be the first in the result set, it will likely be tricky to do with SQL alone. This works, but only because “fixed” is a digit less than the others
sqlite> SELECT address, title
...> FROM amvideos
...> WHERE address = '275293411'
...> OR address IN (SELECT address
...> FROM amvideos
...> WHERE address != '275293411'
...> ORDER BY RANDOM() LIMIT 5)
...> ORDER BY CAST(address AS integer) ASC;
275293411|fixed
1234567890|vid1
2345678901|vid2
3456789012|vid3
5678901234|vid5
6789012345|vid6