Using functional tools to query data
The std.algorithm
module includes a variety of higher-order ranges that provide tools similar to functional tools. We've already used many of them in this chapter. Here, we'll put it all together to see how D code can be similar to a SQL query.
A SQL query is as follows:
SELECT id, name, strcat("Title: ", title) FROM users WHERE name LIKE 'A%' ORDER BY id DESC LIMIT 5;
How would we express something similar in D?
Getting ready
Let's create a struct to mimic the data table and make an array with the some demo information. The code is as follows:
struct User { int id; string name; string title; } User[] users; users ~= User(1, "Alice", "President"); users ~= User(2, "Bob", "Manager"); users ~= User(3, "Claire", "Programmer");
How to do it…
Let's use functional tools to query data by executing the following steps:
Import
std.algorithm
.Use
sort
to translate theORDER BY
clause. If your dataset is large, you may wish to sort it at the end...